2017-03-24 29 views
3

This questionboost::threadpool::pool,並有關於它的here on sourceforge文檔,但在boost docs我找不到它。在boost中是否有線程池實現?

爲什麼叫提升,如果它不是提升?

PS:我知道如何使用Boost :: ASIO的io_service創建一個線程池,但我想了解這個boost::threadpool是什麼。

+2

這是非常古老的圖書館。似乎這不是正式提升的一部分。當今的線程池是'boost :: asio'的一部分。 – Zefick

+0

@Zefick'io_service'不產生任何線程,是嗎?所以,你不能稱之爲線程池。 –

+2

沒有'boost :: threadpool :: pool'。但是你可以在源代碼和例子中找到'boost :: executors :: basic_thread_pool'和'boost :: executors :: scheduled_thread_pool'。但不是在文檔中。最後的改變是在1.60的提升下完成的,所以似乎並沒有被放棄。也許它是實驗性的? –

回答

0

與Boost.Thread維護前助手,我經常問爲什麼Boost.Thread不提供線程池。簡單的答案是,它真的很容易推出自己的,例如here is a perfectly fine threadpool implementation in only a few lines of C++

這對加速太小的事情,太多的自行車脫落將發生在嘗試提交通用線程池。所以,你可以濫用ASIO實現一個線程池(也容易),滾你自己,或者只是使用訪問的C++ 11標準庫中的線程池通過std::async

+0

Boost的原因是,Boost是人們去找這個,一次又一次(包括我自己)的地方。你說只需要幾行代碼(那個老鴨子)就可以推出自己的代碼,但是Boost.Bimap肯定不應該存在?最後,根據我的瀏覽器,您提供的鏈接不包含「pool」字樣。所以凡人都不會把它搞砸。 –

+0

要在Boost中獲得過去的同行評審,需要充分的爭議。一個「完美」的線程池將是非常有爭議的。我懷疑它是否能夠通過,至少在執行者WG21提案消除了大量潛在威脅之前是如此。所以你最終可能會得到你的願望,但是這還不會持續幾年。 –

+0

鏈接到示例已死亡。 – Raedwald