线程A和线程B并发执行不同的任务,判断哪个线程先完成,然后得到一个返回值,就另外一个未执行完的停止掉。这个怎么实现呢?
解决方案 »
- 拖拽一个textbox和一个vScrollbar,怎么捆绑运行显示?????
- 求编写bean的一个完整例子,
- java基础题关于StringBuffer,求教
- 请问对话框如何去获取按下“撤销”的动作
- 制作Windows小助手
- 自己在msn认识的人,被介绍到自己的公司后,那小子过河拆桥,真tmd的让生气和失望
- 新手问题!(关于java.awt.Image)
- 作好的application 能否在没有安装jdk的windows下运行?
- 高手帮忙(java 的telnet)
- 怎样取得java中数组的长度
- 新手关于用JEditorPane打不开网页的问题
- httpClient 在执行命令的时候会产生很多输出,如何禁止?
synchronized (tmp){
return tmp ;
}
}public static void done(){
synchronized (tmp){
tmp = false;
}
}ThreadA{
run(){
while(getTmp()){
// do something ...
if(...){
done();
}
}
}
}ThreadB{
run(){
while(getTmp()){
// do something ...
if(...){
done();
}
}
}
}
A, B都用一个变量去控制线程是否结束,用下面的模式
A, B里有一个共享的Main对象main.
public void run() {
while (!stopped) {
} main.stop();
}public void setStop(boolean stopped) {
this.stopped = stopped;
}Main的stop()方法去调用A,B的setStop(true) [如果你想狠点,直接调用interrut方法结束线程],这样,A,B中有一个线程结束时,都会全被约束