java笔记→java线程的通讯问题(生产者与消费者)
来源:互联网 发布:内外网络切换器软件 编辑:程序博客网 时间:2024/06/06 15:55
java线程的通讯问题(生产者与消费者)
使用wait()与notify()方法来控制。
生产者使用wait等待并使用notify来通知消费者来消费,
消费者消费完使用wait等待并使用notify来通知生产者进行生产。
**/** * 产品类 */public class Product { int n = 0; int i=0; boolean valueSet = false; public synchronized void put() { if (valueSet == true) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } i++; System.out.println("生产产品:" + i); valueSet=true; notify(); } public synchronized void get() { if (valueSet == false) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } n++; System.out.println("消费产品:" + n); valueSet=false; notify(); }}/** * 生产者类 */public class Producer implements Runnable { Product consumer; public Producer(Product consumer) { this.consumer = consumer; new Thread(this).start(); } public void run() { while(true){ consumer.put(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }}/** * 消费者类 */public class Consumer implements Runnable { Product consumer; public Consumer(Product consumer) { this.consumer = consumer; new Thread(this).start(); } public void run() { while(true){ consumer.get(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }}/** * 测试类 */public class Test { public static void main(String[] args){ Product consumer=new Product(); Producer producer=new Producer(consumer); Consumer product=new Consumer(consumer); }}**
0 1
- java笔记→java线程的通讯问题(生产者与消费者)
- java基础—线程间的通讯 生产者与消费者
- java模拟生产者与消费者问题(线程同步)
- 线程通信,生产者消费者问题(Java)
- Java线程 生产者消费者问题
- java生产者消费者问题(线程同步与线程等待的应用)
- JAVA线程(生产者与消费者)
- java线程 生产者与消费者
- java线程 生产者与消费者
- Java 线程的基本概念(模仿生产者与消费者的问题)
- Java线程篇(三):线程协作:生产者与消费者问题
- Java SE学习笔记:线程通信、生产者与消费者案例、线程状态(线程的生命周期)、线程操作、Condition类
- 生产者与消费者问题的java示例
- java生产者与消费者问题
- java 生产者 与 消费者 问题
- JAVA生产者与消费者问题
- java线程(生产者/消费者)
- java学习笔记之多线程生产者与消费者
- 千奇百怪的博弈论(不定时更新)
- Maven在IntelliJ IDEA中的学习笔记(1)
- Spark组件之GraphX学习4--Structural Operators:mask
- Spark 数据ETL及部分代码示例
- MapReduce源码分析之作业Job状态机解析(一)简介与正常流程浅析
- java笔记→java线程的通讯问题(生产者与消费者)
- Redis源码解析——统计二进制数中1的个数
- Problem B
- maven/gradle 打包后自动上传到nexus仓库
- 标准MDL方法修改Page、NonPage内存的属性
- MongoDB学习12_MongoDB学习笔记之 第3章 MongoDB的Java驱动
- Android Styles 使用详解
- 小何讲进程: 阻塞进程函数 wait()和waitpid()
- 【笔记】Core GameObjects, components, and concepts relating to Unity UI development include