返回信息流public class Main {
public static int a = 0;
public static void main(String[] args) throws InterruptedException {
for(int i=0;i<1000;i++){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for(int j=0;j<1000;j++){
try {
incease();
} catch (InterruptedException e) {
}
}
}
});
thread.start();
thread.join();
}
System.out.println(a);
}
public static void incease() throws InterruptedException{
//Thread.sleep(1);
a++;
}
}
为什么不管我怎么运行出来的结果都是1000000;是我尝试的次数不够多吗?
这是一条镜像帖。来源:北邮人论坛 / java / #56600同步于 2017/6/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
一段java多线程代码
cc19931002
2017/6/20镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
对哦,所以我应该把他放在一个数组里面然后再写一个for循环调一下每个线程的join对吧?
【 在 superccf 的大作中提到: 】
: 关键是你每次线程start完以后直接跟了join所以所有线程还是顺序执行的
对的
【 在 oldmanwang 的大作中提到: 】
: join应该阻塞主线程直到thread执行完成,这样就会导致thread.sleep期间主线程仍然阻塞,不会创建新线程,相当于顺序执行了吧。
[ema1]
【 在 nuanyangyang 的大作中提到: 】
: 你每创建一个新thread都立即join,不是1000000的话你可以向jdk报bug了。
[ema1]