作者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