概述:
Java多线程并发模型中的实现可以基于wait()和notify()
生产者消费者代码:
消费者:
class Customer implements Runnable { public void run() { while (true) { synchronized (TestConcurrentThread.lock) { if (TestConcurrentThread.list.size() > 0) { TestConcurrentThread.list.remove(TestConcurrentThread.list .size() - 1); System.out.println("***Customer item items size is :" + TestConcurrentThread.list.size()); } else { try { TestConcurrentThread.lock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }
生产者:
class Producer implements Runnable { public void run() { while (true) { synchronized (TestConcurrentThread.lock) { if (TestConcurrentThread.list.size() > 1000) { TestConcurrentThread.lock.notify(); continue; } TestConcurrentThread.list.add("abc"); System.out.println("***Producer item items size is :" + TestConcurrentThread.list.size()); TestConcurrentThread.lock.notify(); } } } }
调用:
public class TestConcurrentThread { public static final Object lock = new Object(); public static List<String> list = new ArrayList<String>(); public static void main(String[] args) { Thread customerThread = new Thread(new Customer()); customerThread.start(); Thread producerThread = new Thread(new Producer()); producerThread.start(); } }
结论:
1.有wait(),notify()的地方必须有synchronized
2.wait()之后必须通过notify()系唤醒
3.notify()系的时候需要在synchronized代码块执行完成之后才能释放锁
相关推荐
Java 同步方式 wait和notify/notifyall
java多线程之wait,notify的用法([ 详解+实例 ]).
java-wait和notify的用法.pdf
使用Java多线程的wait和notify方法实现最简单的生产者消费者模式
Java多线程的样例代码,工程,内含wait()、notify()和sychronized的使用范例。
java多线程下wait和notify的作用
JAVAWAIT和NOTIFY的用法.pdf
开一个子线程来完成一个循环处理的工作,我在主线程中能灵活控制这个子线程的开始、暂停/继续、结束。
java中多线程编程notify、wait的使用
在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。。举个例子,如果你的Java程序中有两个线程——即生产者和消费者,那么生产者可以通知消费者,让消费者开始消耗数据,因为队列缓冲区中有内容待...
源码—Java多线程5—死锁和wait notify notifyAll
一个理解wait()与notify()的例子,让你更好理解.
wait()、notify()和notifyAll()方法2---马克-to-win java视频
主要介绍了java多线程wait,notify,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面小编和大家一起来学习一下吧
wait()、notify()和notifyAll()方法1---马克-to-win java视频
本篇文章是对java多线程wait()和notify()进行了详细的分析介绍,需要了解的朋友参考下
主要介绍了详解Java程序并发的Wait-Notify机制,多线程并发是Java编程中的重要部分,需要的朋友可以参考下
主要介绍了Java多线程中wait、notify、notifyAll使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
java代码-wait-notify 生产者消费者