有一個C++多線程庫中有一個可以包含必須等待完成其他作業的作業隊列。線程池正在處理隊列中的所有作業。C++隊列mulithreading等待作業完成
我想寫一個多線程的C++程序,生產和消費被放在一個隊列中的作業,只有一些這些工作只能在已經被處理一些其他工作處理。
像的qsub(電網隊列管理器)類似,在那裏你可以把一個作業隊列中,有持有至其他的工作已經完成。
有一個C++多線程庫中有一個可以包含必須等待完成其他作業的作業隊列。線程池正在處理隊列中的所有作業。C++隊列mulithreading等待作業完成
我想寫一個多線程的C++程序,生產和消費被放在一個隊列中的作業,只有一些這些工作只能在已經被處理一些其他工作處理。
像的qsub(電網隊列管理器)類似,在那裏你可以把一個作業隊列中,有持有至其他的工作已經完成。
找到了我要找:
任務竊取像英特爾線程構建模塊來實現: http://en.wikipedia.org/wiki/Intel_Threading_Building_Blocks
你可能想看看所謂的信號燈。 http://en.wikipedia.org/wiki/Semaphore_(programming)
例如,您可以使用Boost Threading模塊編寫信號量。我希望這能幫助你解決你的問題。
退房這次談話的香草薩特。他給出了一個C++ 11樣式作業的實現。
'then'功能如何?也就是說,線程池中的每個工作都會從線程池中提供'future',並且如果您想在某個特定工作完成時排隊一個新工作,那麼只需將一個'then'附加到所運行的'future'上(誰在乎哪裏)什麼時候「未來」準備好了?然後它將「依賴作業」排入線程池。 – Yakk
你有沒有做過任何研究? TBB,PPL,Boost線程,std :: packaged_task和std :: future等等。 – sehe
@Yakk哪個(非標準?)實現提供'then'? – sehe