我需要一种快速的线程间通信机制,用于将工作(void*)从TBB任务传递给正在运行/阻塞操作的几个工作进程。目前我正在考虑使用pipe()+libevent。是否有更快、更优雅的替代方案来使用英特尔线程构建块?
发布于 2010-03-08 22:51:24
由于线程共享相同的内存空间,您应该能够只使用带有互斥锁的标准内存。管道()+libevent解决方案似乎更适合进程间通信,因为每个进程都有不同的内存空间。
发布于 2010-08-24 00:33:23
查看Implementing a Thread-Safe Queue using Condition Variables。它使用一个STL队列、一个互斥锁和一个条件变量来促进线程间的通信。(我不知道这是否适用于英特尔线程构建块,但由于问题/标题中没有提到TBB,我假设其他人会像我一样在这里结束-寻找一种不是IPC的线程间通信机制。这篇文章可能会帮助他们,就像它帮助我一样。)
发布于 2013-11-23 20:01:07
看看Boost锁释放和线程安全队列。非常容易使用,并且工作得非常好。我将它与运行在不同内核上的线程一起使用,轮询队列中的工作。
http://www.boost.org/doc/libs/1_55_0/doc/html/lockfree.html
https://stackoverflow.com/questions/2399762
复制相似问题