# MultiThreadTest **Repository Path**: weixin.com/MultiThreadTest ## Basic Information - **Project Name**: MultiThreadTest - **Description**: java多线程联系 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-07-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多线程练习 # countDownLatch 线程辅助类,类似信号量 。 ` private static CountDownLatch comingTag = new CountDownLatch(10);`这是生命 一个待有10个线程来消耗的信号量 每次countDown就消耗固定的个数 。知道10被消耗完,才能继续进行 。一般countDown和await联合使用 **一个或者多个线程,等待一个线程或者多个线程完成之后才能继续进行** # cyclicBarrier **多个线程互相等待 ,任何一个线程完成之前 , 所有线程都处于等待。** ``` //没5个线程是一组,完成之后就执行run CyclicBarrier cyclicBarrier = new CyclicBarrier(5, new Runnable() { @Override public void run() { System.out.println("全部执行完毕"); } }); //只能是5的倍数,如果不是,就进入死锁。 CyclicBarrierThread[] cyclicBarriers = new CyclicBarrierThread[10]; ``` # semaphore 限制线程的并发的数量