博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程循环打印输出问题(二)
阅读量:6917 次
发布时间:2019-06-27

本文共 1001 字,大约阅读时间需要 3 分钟。

  hot3.png

//保证优先级	public volatile static boolean flag =true;	public static void main(String[] args) {		//控制的锁		final Object lock =new Object();				new Thread(new Runnable(){			@Override			public void run() {				synchronized(lock){					flag=false;					for(int i=0;i<5;i++){						System.out.println("a");						try {												lock.notify();							lock.wait();						} catch (InterruptedException e) {							e.printStackTrace();						}					}					lock.notify();				}			}}).start();				new Thread(new Runnable(){			@Override			public void run() {				synchronized(lock){					//保证a先输出					if(flag){						try {							lock.wait();						} catch (InterruptedException e) {							e.printStackTrace();						}					}					for(int i=0;i<5;i++){						System.out.println("b");						lock.notify();						try {							//输出后让线程等待							lock.wait();						} catch (InterruptedException e) {							e.printStackTrace();						}					}				}			}}).start();	}

相比运用同步器cyclicbarrier来说,虽然功能实现了,但是代码比较繁琐

转载于:https://my.oschina.net/xpbob/blog/591401

你可能感兴趣的文章
Ubuntu12.04上编译PlateGatewayQt
查看>>
(转)UITableView使用详解 相当详细,不错的东东
查看>>
Java中JDK,JRE和JVM之间的关系
查看>>
Python-NLTK环境搭建
查看>>
二叉搜索树转换成有序的双向链表
查看>>
sql获取每门课程成绩最好的学生信息
查看>>
入坑IT都快十年了
查看>>
《并行计算的编程模型》一3.7.1 选择集合参与者
查看>>
百分点:利用大数据做智慧商业
查看>>
浅析自动化设备安装运维的发展方向
查看>>
行为型模式:模板方法
查看>>
区块链:定义未来金融与经济新格局
查看>>
mongoDB高级查询这一篇就够了
查看>>
js节流和防抖
查看>>
VUE 使用笔记
查看>>
(转)Android studio 多渠道打包(超简洁版)
查看>>
SpringBoot源码解析-内嵌Tomcat容器的启动
查看>>
阿里Java面试题剖析:关于系统拆分,为什么要进行系统拆分?
查看>>
Application 详解
查看>>
朋友,这里有个仓库需要你 PR 一下
查看>>