看板 C_and_CPP 關於我們 聯絡資訊
請問一下 我要如何讓執行到一半的Thread停止呢 例如Thread正在執行 for( j = 0; j < 100; j++ ) { printf( "j=%d\n", j ); } 另一個Thread呼叫了 killthread( thread_id ) 那這一個功能是要怎麼去做呢 我不太曉得怎麼中止執行到一半的Thread 我有試過Pthread_kill, Pthread_cancel 可是Thread還是會從頭執行到尾 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.238
StubbornLin:多加一個flag在迴圈裡判斷是否要跳離開來 02/14 13:49
StubbornLin:不過你才跑100次 或許時間實在太短 02/14 13:50
StubbornLin:根本來不急讓其它thread去殺死他或怎樣 就已經沒了 02/14 13:50
tsaiminghan:請問外部要和即時控制thread, 是不是只能用全域變數 02/14 13:59
softwind:不知道原po是要 暫停or終止 一個thread? 02/15 01:56
softwind:你可以查查 POSIX thread 的範例 應該有你需要的解法 02/15 01:57
softwind:一個process包含多個thread 用thread的目的就是為了共用 02/15 01:58
softwind:同一個process內的資源 so 如果要跨thread進行控制 02/15 01:58
softwind:你可以使用 global var不過 或許應該宣告成 volatile 02/15 01:59
softwind:以避免 其它的thread 不經意的改變該var的數值 02/15 02:00
tinlans:pthread_kill 很暴力,cancel 是要到 cancel point 才會停 02/16 15:04