C ++ - 在线程之间传递数据

时间:2014-11-19 09:35:30

标签: c++ multithreading

我有一个由4个线程组成的线程池:t1,t2,t3和t4。它们同时运行,但t3和t4的输入取决于t2的输出。我应该如何实现消息队列,以便在t2完成后,它将输出数据发送到t3和t4进行处理?我试图使用锁定机制实现消息队列,但似乎锁定非常昂贵。是否有在线程之间传递数据的无锁机制? 我在visual studio 2010中使用boost :: thread。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

您可以考虑。它提供了广泛的并行概念,包括concurrent_queueconcurrent_bounded_queue(等待),pipelineflow::graph。前两个也可以在MS VS 2010中的中找到。