import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 要求实现10个线程同时执行,并通知比赛结束
* 使用到的类有:
* 1:CountDownLatch,如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件
* 1.1 countDown方法,计数器减1
* 1.2 await方法,阻塞当前线程,直到计数器为0
* 1.3 await(long timeout, TimeUnit unit),等待指定时长后立刻开始执行任务
* 2:ExecutorService,线程池
*
* 实现方式:
* 1:使用两个同步所,一个用来通知比赛开始,一个用来通知比赛结束。获取比赛结束才可以开始后续工作。
*
* @author admin
*
*/
public class SameTimeMoreThreads {
public static final int threadCount = 10;
public static void main(String[] args) {
/**
* 线程池
*/
ExecutorService exe = Executors.newFixedThreadPool(threadCount);
/**
* 口令枪
* 当口令枪起,比赛开始
*/
final CountDownLatch matchGun = new CountDownLatch(1);
/**
多线程 -同时让10个线程执行一项工作。
最新推荐文章于 2024-05-08 16:47:16 发布