【发布时间】:2014-06-13 15:34:11
【问题描述】:
我正在使用线程,需要使用互斥锁保护 std::cout 操作,但我不知道如何重载运算符
myOut << "hello " << 55 << " world" << false << 45.4f << std::endl;
如果有人可以帮助我,我会感谢你。
【问题讨论】:
-
这样的事情应该在流缓冲区级别完成。 Here's an implementation of a thread safe buffer by Dietmar.
-
@0x499602D2:实际上,这太低级了。更好的是包装
std::stringstream和对线程安全流对象的引用或流对象和互斥锁的对象。仅在包装器销毁时写入底层对象一次。因此,同步开销要少得多,并且消息不会与其他消息交错。 -
一个想要相同的问题,只是为了记录:stackoverflow.com/questions/9297099/…
标签: c++ multithreading mutex ostream