如果我向線程池提交了一個工作並且線程已經在boost中工作,會發生什麼?如果我將工作發佈到線程池並且線程已在boost工作,會發生什麼情況?
我看過這個話題(How to create a thread pool using boost in C++?),它解釋瞭如何創建一個池。
我也是這個話題(https://stackoverflow.com/a/12267138/7108553)中發現的
,如果我分配工作給游泳池和所有線程都那麼努力 作業被放棄。
我的問題是,是這樣的情況下,如果我創建一個類似於這樣的池(How to create a thread pool using boost in C++?)?
我的理解是,如果我將作業分配給池並且所有線程都已經工作,那麼這將由庫在內部處理,並且一旦線程完成,那麼作業被分配給它..這是正確的嗎?
如果沒有,是否有一種有效的方式來跟蹤自由和佔用的線程?
這取決於線程池的設計。您必須閱讀您選擇使用的實施的文檔。排隊添加工作是最常見的方法,但我可以看到在所有線程都在使用時丟棄的線程池的用法。 –
其實我做了,但在那個特定點上並不清楚。 – user7631183