生产者和消费者问题
来源:互联网 发布:怎么往云镜上下载软件 编辑:程序博客网 时间:2024/05/20 23:38
生产者和消费者问题
package 生产者消费者;public class ProducerConsumerTest { public static void main(String[] args) { PublicResource resource = new PublicResource(); new Thread(new ProducerThread(resource)).start(); new Thread(new ConsumerThread(resource)).start(); new Thread(new ProducerThread(resource)).start(); new Thread(new ConsumerThread(resource)).start(); new Thread(new ProducerThread(resource)).start(); new Thread(new ConsumerThread(resource)).start(); }}
package 生产者消费者;/** * 生产者线程,负责生产公共资源 * @author dream * */public class ProducerThread implements Runnable{ private PublicResource resource; public ProducerThread(PublicResource resource) { this.resource = resource; } @Override public void run() { while (true) { try { Thread.sleep((long) (Math.random() * 1000)); } catch (InterruptedException e) { e.printStackTrace(); } resource.increase(); } }}
package 生产者消费者;/** * 消费者线程,负责消费公共资源 * @author dream * */public class ConsumerThread implements Runnable{ private PublicResource resource; public ConsumerThread(PublicResource resource) { this.resource = resource; } @Override public void run() { while (true) { try { Thread.sleep((long) (Math.random() * 1000)); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } resource.decrease(); } }}
package 生产者消费者;/** * 公共资源类 * @author dream * */public class PublicResource { private int number = 0; private int size = 10; /** * 增加公共资源 */ public synchronized void increase() { while (number >= size) { try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } number++; System.out.println("生产了1个,总共有" + number); notifyAll(); } /** * 减少公共资源 */ public synchronized void decrease() { while (number <= 0) { try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } number--; System.out.println("消费了1个,总共有" + number); notifyAll(); }}
0 0
- 消费者和生产者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 消费者和生产者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 2016.10.5比赛总结及八、九月总结
- 最大子段和
- effective stl 第44条:容器的成员函数优先于同名的算法
- js中的表单插件
- 苹果CEO库克访谈:看好AR,乔布斯改变他一生
- 生产者和消费者问题
- 国庆随笔
- Java数据结构与算法之stack栈
- W: GPG 错误:http://archive.ubuntukylin.com:10006 xenial InRelease: 由于没有公钥,无法验证下
- heapify的总结
- Thread和Runnable实现多线程的区别
- NOIP提高组【JZOJ4814】tree
- java 剪切板 clipboard.js 与 ZeroClipboard.swf
- HDU 4185 Oil Skimming 【离散化二分匹配 黑白染色】