控制线程的执行顺序
来源:互联网 发布:信鸽软件 编辑:程序博客网 时间:2024/05/22 15:01
最近看到很多人在问这样一个线程问题:现在有A1,A2,A3三个线程,正常情况下他们的执行顺序是没有规律的,然而现在我们想要的是他们要按照我们要求的顺序来执行,比如A1——>A2——>A3这样一个执行顺序;该怎么实现?说到这里,固然想到用 join()方法;话不多说,直接上代码:
/** * 控制线程的执行顺序 * * @author zhaoheng * */public class Text1 { public static void main(String[] args) throws InterruptedException { // 创建线程1 final Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("线程---1"); } }); // 创建线程2 final Thread thread2 = new Thread(new Runnable() { @Override public void run() { try { // 该方法使运行状态的线程2编程阻塞态 thread1.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程---2"); } }); final Thread thread3 = new Thread(new Runnable() { @Override public void run() { try { // 该方法使运行状态的线程3编程阻塞态 thread2.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程---3"); } }); // 启动线程 thread1.start(); thread2.start(); thread3.start(); }}
运行结果:
线程---1线程---2线程---3
join()方法是可阻断运行态的线程的,使正在运行的线程由运行态转变为阻塞态然后运行插入的线程,当插入的线程运行之后,再运行被阻塞的线程,这样就做到了控制线程的执行顺序。
阅读全文
0 0
- 控制线程的执行顺序
- 控制线程顺序执行
- 如何控制线程执行的先后顺序
- join控制线程的执行顺序
- Java--线程的先后执行顺序控制
- java控制线程的执行顺序
- CountDownLatch控制线程执行顺序
- java中控制线程间执行顺序的方法
- 使用信号量控制线程执行顺序,进而控制不同视频流的解码顺序
- java 中线程执行顺序控制
- java 中线程执行顺序控制
- java 中线程执行顺序控制
- java 多线程控制线程执行顺序
- java中线程执行顺序控制
- java中线程执行顺序控制
- CountDownLatch 控制多个线程执行顺序
- Java 线程的执行顺序
- Java中使用ReentrantLock控制线程执行顺序
- 解决React Native 运行在ios上报'boost/iterator/iterator_adaptor.hpp' file not found'错误
- Mac安装imagemagick,PHP扩展imagick
- ssh免密登录
- Linux学习 环境变量
- ViewPager无限轮播加数据展示
- 控制线程的执行顺序
- js 手机上input表单点击不弹出软键盘,jq禁用手机键盘
- Linux学习 安全设置
- Tablayout与Viewpage实现联动效果
- thinkphp框架中session的使用
- ext中Gridview编辑某一列的时候不取消选中其他选中的列
- centos6.9安装ssdb
- thinkPHP5.0查询id在某个数组中的记录
- HDU 1016 Prime Ring Problem(DFS入门)