CountDownLatch主要用来解决异步转同步的问题
public class Day1 {
static int n=0;
public static void main(String[] args) throws InterruptedException {
Thread[] threads=new Thread[100];
CountDownLatch countDownLatch=new CountDownLatch(threads.length);
for(int i=0;i<threads.length;i++){
threads[i]=new Thread(()->{
System.out.println(Thread.currentThread().getName() + " 运行");
for(int k=0;k<10000;k++)
{
synchronized (Day1.class){
n=n+1;
}
}
countDownLatch.countDown();
});
threads[i].start();
}
System.out.println("等待子线程运行结束");
countDownLatch.await(1000, TimeUnit.SECONDS);
System.out.println("子线程运行结束");
System.out.println(n);
}
}