作者littleboypis (littleboypis)
看板C_and_CPP
標題[問題] 讓執行到一半的Thread停止
時間Sat Feb 14 13:45:25 2009
請問一下
我要如何讓執行到一半的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
1F:推 StubbornLin:多加一個flag在迴圈裡判斷是否要跳離開來 02/14 13:49
2F:→ StubbornLin:不過你才跑100次 或許時間實在太短 02/14 13:50
3F:→ StubbornLin:根本來不急讓其它thread去殺死他或怎樣 就已經沒了 02/14 13:50
4F:→ tsaiminghan:請問外部要和即時控制thread, 是不是只能用全域變數 02/14 13:59
5F:推 softwind:不知道原po是要 暫停or終止 一個thread? 02/15 01:56
6F:→ softwind:你可以查查 POSIX thread 的範例 應該有你需要的解法 02/15 01:57
7F:→ softwind:一個process包含多個thread 用thread的目的就是為了共用 02/15 01:58
8F:→ softwind:同一個process內的資源 so 如果要跨thread進行控制 02/15 01:58
9F:→ softwind:你可以使用 global var不過 或許應該宣告成 volatile 02/15 01:59
10F:→ softwind:以避免 其它的thread 不經意的改變該var的數值 02/15 02:00
11F:推 tinlans:pthread_kill 很暴力,cancel 是要到 cancel point 才會停 02/16 15:04