publicstaticvoidmain(String[] args){for(int i =1; i <=6; i++){newThread(()->{
System.out.println(Thread.currentThread().getName()+"\t离开教室");},String.valueOf(i)).start();}
System.out.println(Thread.currentThread().getName()+"班长最后离开");}
结果:会出现班长不是最后一个离开的情况,把其他同学锁在教室里了
2. 使用后
publicstaticvoidmain(String[] args)throws InterruptedException {// 使用CountDownLatch
CountDownLatch countDownLatch =newCountDownLatch(6);for(int i =1; i <=6; i++){newThread(()->{
System.out.println(Thread.currentThread().getName()+"\t离开教室");//离开一个同学,计数减一
countDownLatch.countDown();},String.valueOf(i)).start();}// 先阻塞,不让班长离开
countDownLatch.await();
System.out.println(Thread.currentThread().getName()+"班长最后离开");}