最近,我一直在尋找線程併發任務庫。理想情況下,一個簡單的接口調用線程上的函數。任何時候都有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