最近,我一直在寻找线程并发任务库。理想情况下,一个简单的接口调用线程上的函数。任何时候都有n个线程,有些完成的速度比别人快,并且在不同的时间到达。C++ 11动态线程池
首先我尝试了Rx,这在C++中很棒。我也研究过Blocks和TBB,但它们要么依赖于平台。对于我的原型,我需要保持平台的独立性,因为我们不知道它会在什么时候运行,并且可能会在做出决策时发生变化。
C++ 11有很多线程和并发的东西,我发现了很多像线程池这样的例子。
https://github.com/bilash/threadpool
类似的项目使用带的std ::螺纹和std ::互斥相同lambda表达式。
这看起来非常适合我需要的东西。有一些问题。这些池以定义数量的线程启动,任务排队直到线程空闲。
我如何添加新的线程? 删除过期的主题? (.Join()??)
显然,这对于已知数量的线程来说要容易得多,因为它们可以在ctor中初始化,然后在dtor中加入()。
这里的任何提示或指针来自具有C++并发经验的人吗?
GCD或libdispatch http://en.wikipedia.org/wiki/Grand_Central_Dispatch –
我使用Boost :: Asio来创建一个简单的线程池。也许你想看看这个示例http://stackoverflow.com/q/14265676/991425 – Haatschii
是的。我读过GCD。 C++中的任何示例或教程源代码?跨平台支持IS boost吗? – WebSight