兩種方法吧,一種是leader/follower模型,一種是half sync/half async模型。
leader/follower設定乙個queue,io thread向queue中push,worker thread從queue中pop。
pop中,如果沒有item,就pthread_cond_wait,push的時候呼叫pthread_cond_signal。
half sync/half async模型,為每乙個worker thread設定乙個queue,作為乙個queue layer,worker thread不斷的從裡面取然後處理。
這裡面的push和pop有很多種實現,建議使用pipe通知的方式,worker thread中有乙個event_loop,相當與乙個sync layer。push的時候寫pipe的寫端,pipe讀端事件被檢測出來,呼叫push。
ICE執行緒池模型
ice執行緒池模型 l f領導者跟隨者模式 摘自 leo 阿材 程池模式一般分為兩種 l f領導者與跟隨者模式 hs ha半同步 半非同步模式。hs ha 半同步 半非同步模式 分為三層,同步層 佇列層 非同步層,又稱為生產者消費者模式,主線程處理i o事件並解析然後再往佇列丟資料,然後消費者讀出資...
ICE執行緒池模型
ice執行緒池模型 l f領導者跟隨者模式 摘自 leo 阿材 程池模式一般分為兩種 l f領導者與跟隨者模式 hs ha半同步 半非同步模式。hs ha 半同步 半非同步模式 分為三層,同步層 佇列層 非同步層,又稱為生產者消費者模式,主線程處理i o事件並解析然後再往佇列丟資料,然後消費者讀出資...
網路程式設計 執行緒池
在乙個池子裡,放固定數量的執行緒,這些執行緒等待任務,一旦有任務來,就有執行緒自發的去執行任務。concurrent.futures 這個模組是非同步呼叫的機制 concurrent.futures 提交任務都是用submit for submit 多個任務的提交 shutdown 是等效於pool...