当一个线程被启动时,并不代表线程就有了执行权。 线程处于临就绪状态并没有执行权,这个时候 main 线程继续往下执行,有可能是别的线程先开始执行。
代码验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
publicstaticvoidmain(String[] args){ Test test = new Test(); Thread t1 = new Thread(test); Thread t2 = new Thread(test); t1.start(); test.flag = true; t2.start(); }