public static void main(String args[]) {
for(int i=0;i<3;i++){
Runnable runnable = new Runnable(){
public void run(){
try {
System.out.println("aaaaa");
condition1.await();
System.out.println("bbbbbb");
Thread.sleep((long)(Math.random()*10000));
System.out.println("回应结果");
condition2.countDown();
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
cndition1.countDown();
}
当执行第一次for循环的时候,condition1.await() 等待,为什么会输出三次 aaaaa 不应该只输出一次吗 当调用countDown()方法时候 for循环才能继续下去吗? 新手在自己看书学习 请前辈指导下
------解决思路----------------------
不知道 cndition1 是什么..但是不影响....
for 循环里面.. 你每次循环都创建了一个 线程. 你await() 或者 sleep() 都只是对那一个线程来说的, 对于主线程来说 还是继续在走for循环... 所以你会看到 三次 aaaaa
------解决思路----------------------
因为你循环三次new了三个线程你的await是每个子线程分别执行的……所以三个线程三连发了三个aaa
------解决思路----------------------
恩...差不多是这个意思....
线程说实话也是对象.. 你new了三个对象.. 肯定是不同的地方...