1. CountDownLatch
类似于计数器的功能,主要用于控制某个任务的执行先后顺序,可以控制某个任务在其他任务(可能是多线程的)执行完
之后,才会去执行。
public static void main(String[] args) { CountDownLatch countDownLatch = new CountDownLatch(1);//初始化一个countDownLatch对象 new Thread() {//开启一个线程 public void run() { try { Thread.sleep(4000); System.out.println("111"); countDownLatch.countDown();//线程结束时,将计数减1 } catch (Exception e) { e.printStackTrace(); } } }.start(); try { countDownLatch.await();//会一直阻塞等到,直到计数器为0时才会去执行接下来的代码 System.out.println("*****"); } catch (Exception e) { e.printStackTrace(); } }
2. CyclicBarrier
3. Semaphore
参考