有一个线程,里面按顺序执行了好多个步骤,现在有一个flag,当flag=false的时候,线程就退出.
感觉下面的写法有点2,因为步骤很多,每个步骤都去检查一下flag的值,觉得很土.
有没有其他好的方法.当flag=false的时候,线程能够"知道"该退出了,然后安全退出.public class test {
public static void main(String[] args) {
myThread mt = new myThread();
mt.start(); //...
sleep(sometime);
mt.flag = false;
}
}class myThread extends Thread {
public boolean flag; @Override
public void run() {
while (flag) {
step1();
// if(!flag) break;
step2();
// if(!flag) break;
step3();
// if(!flag) break;
step4();
// if(!flag) break;
step5();
// if(!flag) break;
step6();
}
}
}
感觉下面的写法有点2,因为步骤很多,每个步骤都去检查一下flag的值,觉得很土.
有没有其他好的方法.当flag=false的时候,线程能够"知道"该退出了,然后安全退出.public class test {
public static void main(String[] args) {
myThread mt = new myThread();
mt.start(); //...
sleep(sometime);
mt.flag = false;
}
}class myThread extends Thread {
public boolean flag; @Override
public void run() {
while (flag) {
step1();
// if(!flag) break;
step2();
// if(!flag) break;
step3();
// if(!flag) break;
step4();
// if(!flag) break;
step5();
// if(!flag) break;
step6();
}
}
}
解决方案 »
- .do文件 要传递给servlet 而jsp文件不需要,是這樣的嗎?
- My Eclipse使用中文查询My Sql数据库的问题?
- 急问各位高手关于setCellRenderer()是用来做什么的?
- 求助:swt淡入淡出
- 关于在 Myeclipse 中, .jsp的创建
- 一个随机排列的问题
- 别人用c写了一个dll文件.我不知道源码!想在java里面调用里面的方法该咋办呀.
- 中文JAVA技术网正式成为共创软件联盟成员网站
- CMP里面怎样拿到详细的SQLException信息
- 一个程序路径问题!!!!!!!!!!!!!!!!!!!!!帮我看看呀
- 急需要帮助呀,请路过的给位高手帮忙看看。(Flash连接ACCESS)
- 求助,代码出问题!
boolean canRun = check();
if (!canRun) {
return;
}Object someResult = getSomeResult();
if (someResult == null) {
return;
}...
怎么样强行终止,好像线程不能乱停止吧.stop()是不被推荐的
确实每个步骤都要去看一下flag的值,这样后面的步骤就不用多余去走了,可以及时退出线程.但是如果有10个步骤,这个if要写10次,感觉很2.有没有其他写法
我的题意是在线程执行的某时刻,要把这个线程退了.比如执行到step3,那么step456就不用走了 浪费效率.
有没有更好的写法