* CountDownLatch
* 同步辅助类,在完成一组正在其他线程中执行的操作之前,他允许一个或多个线程一直等待
* countDown()当前线程调用此方法,则计数-1<放finally里执行要好一点>
* await()调用此方法会一直阻塞线程,直到计数器为0
public class Client3 {
public static void main(String[] args) throws InterruptedException {
long start = System.currentTimeMillis();
int threadtimes = 10;
final CountDownLatch countDownLatch = new CountDownLatch(threadtimes);
for (int i = 0; i < threadtimes; i++) {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100000; i++) {
Object o = HungrySingleton.getInstance();
}
countDownLatch.countDown();
}
}).start();
}
countDownLatch.await();//main线程阻塞,知道计数器为0,才会往下执行
long end = System.currentTimeMillis();
System.out.println("共花费了:"+(end-start));
}
}