2010-03-08 57 views
6

我需要一个快速线程间通信机制,用于将工作(void*)从TBB任务传递给正在运行/阻塞操作的多个工作人员。 目前我正在研究使用pipe() + libevent。英特尔线程构建模块使用更快更优雅的替代方案吗?快速线程间通信机制

+0

全局变量? – kennytm 2010-03-08 14:07:29

回答

6

因为线程共享相同的内存空间,所以您应该只能使用标准内存和互斥锁。 pipe()+ libevent解决方案似乎更适合进程间通信,其中每个进程具有不同的内存空间。

+1

感谢您的回复。我想我会使用concurrent_bounded_queue :) – Stan 2010-03-08 17:54:00

2

结账Implementing a Thread-Safe Queue using Condition Variables。它使用STL队列,互斥量和条件变量来促进线程间通信。 (我不知道这是否适用于英特尔线程构建模块,但由于在问题/标题中没有提及TBB,我假设其他人会像我一样在这里结束 - 寻找一种线程间通信机制,即而不是IPC,这篇文章可能会对他们有所帮助,就像它对我的帮助一样。)