java 测时多线程执行时的疑问?
public class Cai implements Runnable {
@Override
public synchronized void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+" : "+i);
}
}
}
public class Run {
@Test
public void test2() throws Exception {
Cai cai = new Cai();
Thread thread = new Thread(cai);
Thread thread2 = new Thread(cai);
Thread thread3 = new Thread(cai);
thread.setName("线程1");
thread2.setName("线程2");
thread3.setName("线程3");
thread.start();
thread2.start();
thread3.start();
}
}
当执行test2方法时,为什么会出现如: 线程1循环0-99,线程2循环0-10然后程序就结束了,这是为什么?
线程2没有执行完全,线程3就没有执行到???
加上 thread.join,主线程才会等待这个线程执行完毕
我的可以啊,每次都可以