你的位置:首页 > 软件开发 > Java > java并发:线程同步机制之计数器Exechanger

java并发:线程同步机制之计数器Exechanger

发布时间:2016-04-15 20:00:09
第一节 CountDownLatch(1)初识CountDownLatch (2)详述CountDownLatch  CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1,当计数器值到达0时,它表 ...

java并发:线程同步机制之计数器Exechanger

第一节 CountDownLatch

(1)初识CountDownLatch

java并发:线程同步机制之计数器Exechanger

java并发:线程同步机制之计数器Exechanger

java并发:线程同步机制之计数器Exechanger

 

(2)详述CountDownLatch

  CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1,当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。

CountDownLatch中主要方法如下:

  public CountDownLatch(int count),构造函数中的count(计数器)实际上就是闭锁需要等待的线程数量,这个值只能被设置一次,而且CountDownLatch没有提供任何机制去重新设置这个计数值。

   public void countDown(),每调用一次这个方法,在构造函数中初始化的count值就减1,通知机制是此方法来完成的。

   public void await() throws InterruptedException,调用此方法的当前线程会一直阻塞,直到计时器的值为0。

java并发:线程同步机制之计数器Exechanger

java并发:线程同步机制之计数器Exechanger

java并发:线程同步机制之计数器Exechanger

 

(3)CountDownLatch示例

package com.test;import java.util.concurrent.CountDownLatch;public class CountDownLatchDemo{    public static void main(String args[]) throws Exception{    CountDownLatch latch = new CountDownLatch(3);    Worker worker1 = new Worker("Jack 程序员1",latch);    Worker worker2 = new Worker("Rose 程序员2",latch);    Worker worker3 = new Worker("Json 程序员3",latch);    worker1.start();    worker2.start();    worker3.start();        latch.await();    System.out.println("Main thread end!");  }    static class Worker extends Thread {    private String workerName;    private CountDownLatch latch;    public Worker(String workerName,CountDownLatch latch) {      this.workerName = workerName;      this.latch = latch;    }    @Override    public void run() {      try {        System.out.println("Worker:"+workerName +" is begin.");        Thread.sleep(1000L);        System.out.println("Worker:"+workerName +" is end.");      } catch (InterruptedException e) {        // TODO Auto-generated catch block        e.printStackTrace();      }//模仿干活;      latch.countDown();    }  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:java并发:线程同步机制之计数器Exechanger

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。