Java信号量控制线程任务计数结束

//创建一个最大10线程的池子
ExecutorService pool = Executors.newFixedThreadPool(10);
//创建信号量+50次
CountDownLatch cdl = new CountDownLatch(5);
    for (int i=0; i<10; i++) {
        //创建进程
        pool.submit(()->{
            //执行任务
            try {
                Thread.sleep(2000);
                System.out.println("thread");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //信号量计数-1,
            //=0时唤醒主线程
            cdl.countDown();
        });
    }


try {
    //阻塞,等待信号量线程唤醒
    cdl.await();
} catch (InterruptedException e) {
    e.printStackTrace();
} finally {
    System.exit(0);
}

你可能感兴趣的:(Java信号量控制线程任务计数结束)