java多线程之等待换性机制简单使用
来源:互联网 发布:原生js 双向绑定 编辑:程序博客网 时间:2024/06/04 19:40
等待换新机制的简单使用
wait
notify ()
(1)都使用在同步中,因为要对持有监视器(锁)的线程操作所以要使用在同步中,因为只有同步才具有锁。
(2)为什么这些操作线程的方法要定义object类中呢?因为这些方法在操作同步中线程时。都必须要标识他们所操作线程只有的锁只有同一个锁上的被等待线程,可以被同一个锁上的notify唤醒。
(3)不可以对不同锁中的线程进行唤醒。而锁可以使任意对象,所以可以被任意对象调用的方法定义object类中。
public class WaitAndnotify{ public static void main(String[] args) { Resource r = new Resource(); LineOneIns in = new LineOneIns(r); LineTowOuts out = new LineTowOuts(r); Thread tin = new Thread(in); Thread tout = new Thread(out); tin.start(); tout.start(); }}// 资源类class Resource { public String name; public String sex; public boolean flags; public void set(String names, String sexs) { synchronized (ResourceS.class) { if (flags) { try { ResourceS.class.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } this.name = names; this.sex = sexs; flags = true; System.out.println("写入的资源完毕释放执行权"); ResourceS.class.notify(); } } public void out() { synchronized (ResourceS.class) { if (!flags) { try { ResourceS.class.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("写入的资源是:"+name + ".........." + sex); flags = false; ResourceS.class.notify(); } }}class LineOneIns implements Runnable { Resource r; LineOneIns(Resource r) { this.r = r; } public void run() { boolean flag = false; while (true) { if (flag) { r.set("张杰", "男"); flag = false; } else { r.set("谢那", "女的"); flag = true; } } }}class LineTowOuts implements Runnable { Resource r; LineTowOuts(Resource r) { this.r = r; } public void run() { while (true) { r.out(); } }}
阅读全文
0 0
- java多线程之等待换性机制简单使用
- java多线程通信之等待唤醒机制
- java多线程之等待/唤醒机制
- 多线程之等待唤醒机制
- 多线程之等待通知机制
- java多线程等待唤醒机制
- java多线程之线程间通信:等待/通知机制
- 多线程-生产者消费者之等待唤醒机制
- java多线程的等待和通知机制
- Java---18---多线程:等待唤醒机制
- JAVA多线程 <五>等待唤醒机制
- java 多线程等待、唤醒机制实例
- java语言多线程通信--等待唤醒机制
- java多线程系列(三)---等待通知机制
- java多线程系列(三)---等待通知机制
- java 多线程等待与唤醒机制
- Java多线程之线程间通信--等待(wait)/通知(notify)机制,等待/通知之交叉备份实例
- 黑马程序员——java多线程之死锁和等待唤醒机制
- java基础之流和序列化
- 索引算法
- LintCode判断一个数是不是回文数
- 栈和队列
- DQN-《Human-level control through deep reinforcement learning》译文
- java多线程之等待换性机制简单使用
- L2-020. 功夫传人 BFS
- C
- 20170725考试总结
- 2017 Multi-University Training Contest
- 图解递归调用过程(Python)
- 初入JavaScript(待修改)
- C
- [kotlin系列] (s2_2)属性、字段、接口、可见性修饰