判断两个线程谁先执行完毕 线程A和线程B并发执行不同的任务,判断哪个线程先完成,然后得到一个返回值,就另外一个未执行完的停止掉。这个怎么实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static boolean tmp = true;public static void getTmp(){ 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(); } } } } 例如主线程的类叫Main, Main中持有A, B的对象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中有一个线程结束时,都会全被约束 实现Comparator 排序时异常 关于日历的基础小问题 一个二维数组的算法问题 什么是jdk文档? iReport 问题 80分 急急急!!!! 为何JAVA连接SQL出错,SQL的驱动我也设置了 StringTokenizer的怪现象 于集合工具类Collections中的泛型问题,求详细解答。 请各位推荐JSP入门级别好书! 提一个组件互通的问题,请大家帮忙。 新手关于用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中有一个线程结束时,都会全被约束