看板 C_and_CPP 關於我們 聯絡資訊
Hello 最近在研究Thread pool 在網路上找了一個Thread pool的project下來trace code 後想想在這個Thread pool中加入一些功能 一開始是想加入 destroy thread的功能 可以將正在執行中的Thread立刻停止 當程式執行destroy() 就會將指定的Thread給pthread_cancel使Thread立刻中止執行 可是最近一直卡在一個問題上 我執行destroy() 某個thread後 又重新執行 可是有時會發生整個程式被block住的情況 一開始以為是 signal/wait沒有處理好 可是一直trace/debug還是找不出問題的徵結在哪 所以想請各位幫忙看一下 不曉得是不是當局者迷, 一直看不清問題點 麻煩各位了 程式下載點 http://www.xun6.com/file/20b9f44c7/ask_tp_verion.tar.gz.html 壓縮檔中有提供 Makefile 和 runtest.sh檔 直接下 make 就會編出一隻 test_destroythread 程式 我有寫一個簡單的 runtest.sh 讓這隻程式自動跑個1000次 因為這個問題有時會出現有時不會出現0rz... 所以有時要靠點運氣他才會出現 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.216.117 littleboypis:轉錄至看板 Programming 05/01 12:59
cobrasgo:要不要用ps看一下是不是有zombie process? 05/01 16:08
areyo:zombie process? Does it be 感染? 05/01 17:51
littleboypis:不是zombile process...qq 05/01 19:01
adrianshum:我一直覺得這樣停止 thread 不是好習慣,應該 thread 05/02 00:49
adrianshum:本身的邏輯讓 thread 本身完成工作,而非外部硬殺 05/02 00:50