pthreads:在主线程上执行函数

3 c c++ cocoa multithreading pthreads

我正在寻找类似于Cocoa的

-[NSObject performSelectorOnMainThread: withObject: waitUntilDone:]

方法.

所以基本上我有一个函数可以在一个单独的线程上做一些工作,但它必须执行一些需要在主线程上执行的同步调用.

jus*_*tin 5

在cocoa中,消息被添加到运行循环中,该循环在其迭代中被清除.

模拟这个:

  • 你会想要一个运行循环
  • 一个抽象的消息系统
  • 和引用计数机制(在大多数情况下)
  • 一种将这些消息添加到运行循环以进行计划执行的方法

定时器将是一个很好的补充

要完全使用pthread接口来完成类似的事情,首先要阅读条件pthread_cond_t.

我知道没有pthread接口与你想要完成的1-1关系.条件也可以在没有运行循环的情况下运行,因此如果不重用运行循环实现,则可能需要将其引入表中.如果您使用运行循环,那么您只需要一个锁来向具有运行循环的线程添加消息.