【发布时间】:2011-05-20 11:43:40
【问题描述】:
是否有可能在调用 boost::thread 运行一些指令后回到主线程?
我的代码基于前摄器模式,但是某个函数可能需要一些时间,所以为了不阻塞整个程序,我正在创建一个运行该函数的线程。 当这个函数结束时,我需要调用另一个函数,但它必须在主线程上运行。 我有一个连接池,它不是线程安全的,我真的很想避免互斥锁。
有没有稳定的方法在主线程上运行函数(在另一个线程上调用)?
就像在 ObjectiveC 中一样 performSelectorOnMaintThread
【问题讨论】:
-
您正在寻找消息队列。
-
当然,如果你在主线程上休眠,你就阻塞了主线程。你还能期待什么?睡眠不能像宣传的那样工作?
-
(另外,对不起,我的意思是message pump)。
-
我想我还不熟悉消息队列...忘记最后一个问题。我将在消息队列中通知自己...
标签: c++ boost-thread