0
我想使用boost::thread
類實現線程池。使用Boost :: thread類的線程池實現
我能夠使用下面的線創建線程。
boost::thread Consumer_1(consume);
其中是線程和消耗是綁定到它的函數。
上面的語句一旦執行就會啓動線程。
現在我只想創建線程並執行綁定運行時。
我還沒有發現boost
方法來延遲這種綁定。
任何人都可以幫忙嗎?
我想使用boost::thread
類實現線程池。使用Boost :: thread類的線程池實現
我能夠使用下面的線創建線程。
boost::thread Consumer_1(consume);
其中是線程和消耗是綁定到它的函數。
上面的語句一旦執行就會啓動線程。
現在我只想創建線程並執行綁定運行時。
我還沒有發現boost
方法來延遲這種綁定。
任何人都可以幫忙嗎?
綁定不能稍後完成。由於主要原因—一個執行線程必須執行一些東西。
你需要做的是創建一個函數,將採取的工作,表示爲boost::function
,從隊列和執行它們。比在一個或多個線程中運行該函數。
我不知道有一個線程安全的隊列,但你總是可以使用普通std::deque
與boost::condition_variable
用於喚醒線程和boost::mutex
用於鎖定雙端隊列。您可能還想看Boost.Asio。另見here。
+1用於暗示Asio。您可能不想在生產代碼中使用自己的線程池。如果有必要,‘在行動C++併發’的書,對話題一整章退房威廉姆斯,討論很多很多的東西,你可以做的不對。 – ComicSansMS