boost :: bind在多线程进程中没有按预期工作

时间:2015-11-14 17:10:25

标签: c++ boost boost-thread boost-bind

多个线程同时调用以下函数。

handlework(ItemWork &itemWork)
{
    ItemHandler *itemHandler = NULL;
    itemHandler  = new ItemHandler ();
    itemWork.work(boost::protect(boost::bind(&ItemHandler::writer, itemHandler,  _1,  _2, _3)));
.
.
.
}

当它们被多个线程同时执行时,由最新线程创建的itemHandler对象被其他先前启动(仍在运行)的线程使用。

如何避免?我的意思是执行绑定函数时每个线程都应该使用自己的对象。

如果您需要更多信息,请与我们联系。

谢谢, 纳加

0 个答案:

没有答案