[問題] Thread Pool/Queue的設計方式

看板C_and_CPP作者 (littleboypis)時間16年前 (2009/03/24 02:48), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/4 (看更多)
※ [本文轉錄自 Programming 看板] 作者: littleboypis (littleboypis) 看板: Programming 標題: [問題] Thread Pool/Queue的設計方式 時間: Tue Mar 24 10:47:48 2009 各位好 最近想用C實作出一個Thread Pool or Thread Queue 但是有一個問題 要怎麼Pool中的Thread可以不用一直while() { sleep } 也可以保持在可隨時執行的狀態呢 如果說我要讓Thread不會被 return & pthread_exit 就得要用while包住 如下 ThreadCodeBody { while(1) { if( hasTask ) runThread( TaskFunc ) else if ( noTask ) sleep( 1 ); } } Thread的程式可能就會像上頭這樣 但是這有個問題就是 如果沒有工作時他就得不斷的Sleep個幾秒 然後醒來檢查看有沒有Task進來 這樣感覺很沒效率 所以想請教各位 是不是有什麼樣的方式 可以讓Thread不工作的時候可以直接WAIT 然後有工作進來時就可以直接執行 而不需不斷的Sleep and Wake Up 另外,想請問大家 有沒有比較推薦效能比較好的Thread Pool or Thread Queue(用C寫的)的Library 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.238 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.238

03/24 18:57, , 1F
用 poll or select 等待時間設無限大??
03/24 18:57, 1F
文章代碼(AID): #19o4diqo (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19o4diqo (C_and_CPP)