Java同步机制:synchronized,wait,notify
2015-02-13 21:13
375 查看
/** * 假设A,B两个线程同时运行。但A需要某项前置条件必须满足(data数组装满)后才可以正常运转。 这里让B线程去为满足A的条件去干活。 */ public class SYN { int[] data = new int[100]; final Object lock = new Object(); public SYN() { new Thread(new A()).start(); new Thread(new B()).start(); } private class A implements Runnable { public void run() { /** * 因为A需要前置条件(data数据装满)必须得到满足才能运行,所以,在A需要的data数组不满时,先让A等待(实际上是等待B。 * A在等待的同时;B在干活,B装载data数组) */ synchronized (lock) { try { System.out.println("A开始等待..."); lock.wait(); System.out.println("A结束等待!"); System.out.println("A前置条件满足,开始做想做的事..."); } catch (Exception e) { e.printStackTrace(); } } } } private class B implements Runnable { public void run() { synchronized (lock) { System.out.println("B开始操作..."); /** * 这里假设B线程对数组data的数据装载需要费时的操作(如从网络下载)。B先于A,把A需要的数据data装载完毕,然后通知A */ for (int i = 0; i < 100; i++) { data[i] = i; try { Thread.sleep(10); } catch (Exception e) { } } System.out.println("B结束操作!"); lock.notify(); /** 通知A */ } } } public static void main(String[] args) { new SYN(); } }
相关文章推荐
- JAVA 的wait(), notify()与synchronized同步机制
- Java同步机制:synchronized,wait,notify
- 【技术】JAVA 的wait(), notify()与synchronized同步机制
- JAVA 的wait(), notify()与synchronized同步机制
- Java同步机制:synchronized,wait,notify
- java 中的 wait/notify 同步锁机制
- Java多线程--同步与死锁:synchronized;等待与唤醒:wait、notify、notifyAll;生命周期
- java线程等待、设置优先级、同步、挂起、恢复(Join、setPriority、synchronized、wait、notify……)
- Java并发之synchronized机制(wait和notify)
- Java多线程设计wait、notify、notifyall、synchronized的使用机制
- [JAVA] java多线程设计wait、notify、notifyall、synchronized的使用机制
- java多线程设计wait、notify、notifyall、synchronized的使用机制
- java线程同步——synchronized (wait、notify)
- java线程同步(synchronized,wait,notify,notifyAll)
- Java 多线程(Thread) 同步(synchronized) 以及 wait, notify 相关 [实例介绍]
- java多线程设计wait、notify、notifyall、synchronized的使用机制
- java同步技术-wait, notify, synchronized
- Java 同步方式 (1) —— synchronized 和 Java 同步方式 (2) —— wait和notify/notifyall (很全面)
- java多线程设计wait、notify、notifyall、synchronized的使用机制
- java多线程设计wait/notify机制 (synchronized与对象锁)