我正在开发一种便携式(如在Linux和Windows中)C / C ++程序 - 一款游戏 - 它将使用多线程来完成路径查找等工作。
是否有任何强大的库来处理线程池的任务分配?优选地具有无锁结构和工作窃取以及其他尖端的想法。或者我是否必须从pthreads或线程库开始,然后实现排队等等?
答案 0 :(得分:1)
您应该从英特尔查看tbb。我没有使用他们的任务组,但如果你找不到更好的东西,它可能会给你一个很好的起点。
答案 1 :(得分:1)
如果您要进行自己的线程,请使用Boost.Thread。
对于线程池和任务排队,我认为Boost.Asio是一个很好的库。它可能没有使用最先进的东西,并提供最多的功能,但它是便携,强大,无锁(我认为)。它适用于异步IO,但您基本上可以将任务视为异步消息处理程序。
TBB也是一个不错的选择,但对于电脑游戏来说可能有些过分(它更适合真正的并行计算)。