新类库中的构件

来源:互联网 发布:mac上浏览图片的软件 编辑:程序博客网 时间:2024/06/08 10:35

新类库中的构件

@(并发)[java, 并发, Thinking in Java]

  • 新类库中的构件
  • CountDownLatch
  • CyclicBarrier
  • DelayQueue
  • PriorityBlockingQueue
  • 使用ScheduledExecutor的温室控制器
  • Semaphore
  • Exchanger

1. CountDownLatch

用法:它被用来同步一个或多个任务,强制它们等待由其他任务执行的一组操作完成。

步骤:
1. CountDownLatch latch = new CountDownLatch(SIZE);
2. 多个任务结束其工作时调用latch.countDown();
3. 调用latch.await();等待SIZE数量的任务完成。

2. CyclicBarrier

用法:你希望创建一组任务,它们并行地执行工作,然后在进行下一个步骤之前等待,直至所有的任务都完成。它使得所有的并行任务都将在栅栏处列队,直至所有任务都完成

步骤:
1. CyclicBarrier barrier = new CyclicBarrier(int n, obj implement Runnable);
2. 在n个线程上执行CyclicBarrier.await();
3. n个线程同时开始工作,栅栏动作即为obj
以上两者区别:#1被设计为只能触发1次,计数值不能被重置,#2可以重置计数值

3. DelayQueue

4. PriorityBlockingQueue

5. 使用ScheduledExecutor的温室控制器

6. Semaphore

7. Exchanger