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

OhM*_*osh 5 c++ multithreading

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