java 多线程 CountDownLatch用法

来源:互联网 发布:索尼变焦镜头知乎 编辑:程序博客网 时间:2024/05/29 18:45

CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

主要方法

 public CountDownLatch(int count);

 public void countDown();

 public void await() throws InterruptedException
 

构造方法参数指定了计数的次数

countDown方法,当前线程调用此方法,则计数减一

awaint方法,调用此方法会一直阻塞当前线程,直到计时器的值为0


该方法应用场景

一个视频有很多片(a,b,c)组成,需要将a,b,c,从存储下载到本地,然后将他们合成完整的视频A。在将A上传到存储上。

在下载a,b,c分片视频,可以用多个线程,当所有分片下载完成时,再将它们合成。


Java代码:

List list=new ArrayList();list.add("a");list.add("b");list.add("c");final CountDownLatch countDown = new CountDownLatch(sliceURLs.size());      for(int i = 0; list.size < 3; i++){    Thread t = new Thread(){@Overridepublic void run() {DownloadManager.downLoad(list.get(i));countDown.countDown();}};t.start();}countDown.await();MegerManager.meger(list);

0 0
原创粉丝点击