标准C里面的printf, fprintf之类的,会给FILE指针上锁(在unix平台上就是记录锁,按照msdn的说法windows上也有类似的锁),所以单次函数调用总是线程安全的: 要注意,这里只对文件上锁,不是在操作过程中锁互斥量之类的,所以参数并不是线程安全的 对于iostream,如果按照默认的方式调用(sync_with_stdio=true),则由于它背后就是stdio,所以单次操作也是线程安全的,不然就要自己加锁才能保障线程安全了. 但这里有一个问题,比如输出两个整数,用print