java利用CountDownLatch来制定线程执行顺序
来源:互联网 发布:淘宝过期化妆品 编辑:程序博客网 时间:2024/06/12 23:07
工具包:java.util.concurrent.CountDownLatch;
使用的情景:多线程并发下,某个或某些线程需要在其他线程执行完后才启动。CountDownLatch会生成一个计数器,当计算器值=0的时候,被阻塞的线程才会开始运行。
多线程并发,线程的启动模式遵循同一父亲,并列地位,而不是父子孙类;
比如:利用多线程读写分析文件并输入分析结果,在MainActivity主线程中,开启一个线程去读写文件,开启多个线程去分析文件,最后在开启一个线程来输出结果;
而不是:MainActivity中,开启现在去读写文件,然后在读写文件中在开启线程去分析文件,这样写不利于线程的控制。
以上面例子为例:明显输出结果的线程需要在读写文件的线程很分析文件的线程结束后,才可以运行,因此可以在代码中加入以下就可以实现:
<span style="font-size:18px;">public class MainActivity{public static CountDownLatch countDownLatch=new CountDownLatch(2);//阻塞次数初始为2,可以任意改你需要的public static void main(String[]args){Thread read=new Thread(new ReadThread());read.start();Thread explain=new Thread(new ExplainThread());explain.start();Thread print=new Thread(new OutPrint());print.start();//输出线程会最后完成}}public class ReadThread implements Runnable{public void run(){......//读文件......MainActivity.countDownLatch.countDown();//计数器-1}}public class ExplainThread implements Runnable{public void run(){........//分析文件........MainActivity.countDownLatch.countDown();//计数器-1}}public class OutPrint implements Runnable{public void run(){MainActivity.countDownLatch.await();//在这里阻塞,直到计算器为0,后面语句才执行........//输出........}}</span>
0 0
- java利用CountDownLatch来制定线程执行顺序
- java使用CountDownLatch实现线程顺序执行
- CountDownLatch控制线程执行顺序
- CountDownLatch 控制多个线程执行顺序
- 线程执行顺序——CountDownLatch、CyclicBarrier 、join()、线程池
- 使用 CountDownLatch 控制多个线程执行顺序
- CountDownLatch--控制三个线程执行顺序(三)
- Java 线程的执行顺序
- JAVA线程分组顺序执行
- java 线程按顺序执行
- Java线程循环顺序执行
- Java主线程等待子线程执行完毕-CountDownLatch
- Java主线程等待子线程执行完毕-CountDownLatch
- Java主线程等待子线程执行完毕-CountDownLatch
- Javaの线程之多线程执行顺序
- Java线程之CountDownLatch
- java线程之CountDownLatch
- java线程 CountDownLatch
- 专题四1001
- ios aop 和 swizzmethod
- hdu 5584 LCM Walk 2015ACM/ICPC亚洲区上海站-重现赛
- 将JSON数据转换成对象
- Java WebService 简单实例
- java利用CountDownLatch来制定线程执行顺序
- leetcode 194. Transpose File
- Ajax学习(二)
- 测试fragment生命周期
- 【leetode】349. Intersection of Two Arrays
- 散列表(hash table)
- JAVA常用的验证(手机号的验证)
- java中非对称加密(RSA)的使用
- Tomcat源码分析(二)--连接处理