多线程操作

iiarchitecture 2009-07-21 11:50:30
我有个需求 就是在程序中新起一个线程调用方法a,在a执行的过程中,主线程轮询一个flag b ,如果b是true则结束掉线程a ,如果b一直是false,则让a执行完。

因为方法a的code是不能改的,所以我认为这个需求,不能用线程的interrupt()实现 ,因为没有办法在a方法中加入控制推出的轮询操作。

所以是不是必须用concurrent库呢?,如果这样的话用哪个类比较好呢?

谢谢 高手指教!
...全文
171 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Clarity-Black 2009-07-22
  • 打赏
  • 举报
回复
主线程:
public void run(){
while(true){
//循环查看b的值,当b为true时,结束线程a,将线程a的阀值stat设置为false
if(b) {
stat = false;
}
}

}
a线程:
public void run(){
while(true){
//stat为false时,线程结束
if(!stat) break;
}

}
老张-AI 2009-07-22
  • 打赏
  • 举报
回复
关注
flyxxxxx 2009-07-22
  • 打赏
  • 举报
回复
java中止线程只有两种方式:interrupt、让线程自己控制执行完成(也就是它自己退出run方法)
你这里的方法a不是一个线程,只是线程中的代码段,还不能去修改代码,显然做不到。
clihean 2009-07-22
  • 打赏
  • 举报
回复
是要结束线程a还是方法a,方法a不可以,线程a是你写的可以结束。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧