java多线程关于线程互斥实现实例
来源:互联网 发布:java 6.0 64位 编辑:程序博客网 时间:2024/05/31 19:37
/** * 小明在国庆放七天的时间里,每天看三把DOTA,看4个小时的书, * 顺序不允许打乱,在多线程情况下怎么实现(线程互斥) * @author pipi * */public class ThreadTest { static final Work work = new Work(); /** * dota时间 */ private static Thread dota = new Thread(new Runnable() { @Override public void run() { for(int i = 1;i <= 7;i++){ work.dota(i); } } }); /** * 看书时间 */ private static Thread book = new Thread(new Runnable() { @Override public void run() { for(int i = 1;i <= 7;i++) work.book(i); } }); /** * 开启一周任务 * @param args */ public static void main(String[] args){ dota.start(); book.start(); }}/** * 工作类 * @author pipi * */class Work{ /** * 作为执行标识,为真打dota,假则看书 */ private boolean lock = true; public synchronized void dota(int i){ while(!lock){ try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } for(int j = 1;j <= 3;j++) System.out.println("第" + i + "天========"+"第" + j + "个小时打dota"); lock = false; this.notify(); //唤醒等待中的线程 } public synchronized void book(int i){ while(lock){ try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } for(int j = 1;j <= 4;j++) System.out.println("第" + i + "天========"+"第" + j + "个小时看书"); lock = true; this.notify(); }}
0 0
- java多线程关于线程互斥实现实例
- 多线程实例入门--利用互斥对象实现线程同步
- java线程互斥实例
- 多线程同步互斥实例——使用synchronized实现线程通信和互斥
- 多线程同步互斥实例——使用synchronized实现线程通信和互斥
- java多线程(二)线程的互斥
- java多线程:3、线程互斥
- 多线程程序框架-利用互斥对象实现线程同步
- 多线程_线程互斥
- java线程系列---关于线程同步与互斥问题
- 多线程互斥简单实例
- CreateMutex利用互斥对象实现线程同步实例
- 利用互斥对象实现线程同步的实例说明
- 张孝祥java多线程视频笔记----传统线程互斥技术
- java 多线程学习笔记之 线程互斥
- Java多线程与并发应用-(2)-线程互斥synchronized
- Java多线程[3]:线程同步(互斥)
- java多线程Thread线程同步与互斥、锁机制
- docker基础知识之挂载本地目录
- 在C#中使用SerialPort类实现串口通信 遇到多线程问题
- poj2018(斜率数形结合)
- 将视频 YUV 格式编码成 H264
- android studio下百度地图的搭建
- java多线程关于线程互斥实现实例
- Android 软键盘弹出/收起监听
- Android状态栏微技巧,带你真正理解沉浸式模式(转载收藏用)
- 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS
- Kafka中QueueFullException异常
- 堆栈 学习笔记
- 超市简单购买系统
- JavaScript面向对象编程之对象的属性
- SQL-Relay学习笔记(0)