0

我正在尝试使用 boost 为多线程 c++ 代码创建一个记录器。这是我的代码:

class logger
{
private:
    boost::mutex logMtx;
public:
    logger()
    {
    }
    ~logger()
    {
    }
    void logString(string z)
    {
        boost::mutex::scoped_lock lock(logMtx);
        std::cout<<z<<std::endl;
        std::cout.flush();      
    }
};

然后我与多个线程共享此实例(该实例在创建其他线程之前在主线程中创建)并调用 logString 函数进行日志记录。它似乎不起作用。一些行被截断(整个字符串不打印 - 即如果我通过“abcd”它有时会打印“bcd”)。

这种方法有问题吗?

4

0 回答 0