我正在尋找一個多線程作業調度程序的C/C++實現。 老闆線程(主函數)讀取作業(例如,在while(1)循環中執行msgrcv)。多線程boss/workers模型的C/C++實現
老闆讀取新作業並根據目的地將作業發送到相應的線程 。工作線程執行作業。
我沒有時間從頭開始構建它,我正在尋找一個現成的解決方案。
更新:我不能使用提升。它必須在pthreads(Linux)中
我正在尋找一個多線程作業調度程序的C/C++實現。 老闆線程(主函數)讀取作業(例如,在while(1)循環中執行msgrcv)。多線程boss/workers模型的C/C++實現
老闆讀取新作業並根據目的地將作業發送到相應的線程 。工作線程執行作業。
我沒有時間從頭開始構建它,我正在尋找一個現成的解決方案。
更新:我不能使用提升。它必須在pthreads(Linux)中
最簡單的選擇是讓工作線程等待一個條件變量,當一個作業進來供他們讀取時,這個條件變量就會發出信號。
您需要一個互斥鎖,在檢查條件時被鎖定。當你等待條件變量時,它會自動解鎖相關的互斥鎖,直到條件得到信號,線程將在該點發出信號。你應該再次檢查你的狀況。
對於每個隊列或者對於所有線程都可以有一個條件變量,這取決於您如何縮放。
對不起,提升不是一個選項 – cateof 2011-02-10 14:16:41