android

android countdownlatch和cyclicbarrier区别

小樊
81
2024-11-22 17:10:51
栏目: 编程语言

CountDownLatch和CyclicBarrier都是Java并发库中的同步辅助工具,它们都可以用来控制多个线程之间的执行顺序,但它们之间存在一些关键区别:

  1. CountDownLatch:

示例代码:

CountDownLatch latch = new CountDownLatch(3);
new Thread(() -> {
    // 执行任务
    latch.countDown();
}).start();
new Thread(() -> {
    // 执行任务
    latch.countDown();
}).start();
new Thread(() -> {
    // 执行任务
    latch.countDown();
}).start();
latch.await(); // 等待所有线程完成任务
  1. CyclicBarrier:

示例代码:

CyclicBarrier barrier = new CyclicBarrier(3);
new Thread(() -> {
    // 执行任务
    try {
        barrier.await(); // 等待其他线程
    } catch (InterruptedException | BrokenBarrierException e) {
        e.printStackTrace();
    }
}).start();
new Thread(() -> {
    // 执行任务
    try {
        barrier.await(); // 等待其他线程
    } catch (InterruptedException | BrokenBarrierException e) {
        e.printStackTrace();
    }
}).start();
new Thread(() -> {
    // 执行任务
    try {
        barrier.await(); // 等待其他线程
    } catch (InterruptedException | BrokenBarrierException e) {
        e.printStackTrace();
    }
}).start();

总结:

0
看了该问题的人还看了