生产者消费者模式
来源:互联网 发布:sql if else语句 编辑:程序博客网 时间:2024/06/05 17:52
public class WoTou { int id; public WoTou(int id) { this.id = id; } @Override public String toString() { return "wotou:"+id; }}public class SyncStack { int index = 0; WoTou[] arrWT = new WoTou[6]; public synchronized void push(WoTou wt){ while (index == arrWT.length){ try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } this.notify(); arrWT[index] = wt; index++; } public synchronized WoTou pop(){ while (index == 0){ try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } this.notify(); index--; return arrWT[index]; }}public class Produce implements Runnable{ SyncStack ss = null; public Produce(SyncStack ss) { this.ss = ss; } @Override public void run() { for(int i = 0;i<20;i++){ WoTou wt = new WoTou(i); ss.push(wt); System.out.println("生产了:"+wt); try { Thread.sleep((int)Math.random()*200); } catch (InterruptedException e) { e.printStackTrace(); } } }}public class Consumer implements Runnable{ SyncStack ss = null; public Consumer(SyncStack ss) { this.ss = ss; } @Override public void run() { for(int i = 0;i<20;i++){ WoTou wt = ss.pop(); System.out.println("消费了:"+wt); try { Thread.sleep((int)(Math.random()*1000)); } catch (InterruptedException e) { e.printStackTrace(); } } }}public class ProduceConsumer { public static void main(String[] args) { // write your code here SyncStack ss = new SyncStack(); Produce p = new Produce(ss); Consumer c = new Consumer(ss); new Thread(p).start(); new Thread(c).start(); }}
0 0
- 生产者—消费者模式
- 生产者-消费者模式
- 消费者与生产者模式
- 消费者与生产者模式
- 消费者与生产者模式
- 生产者消费者模式浅析
- 生产者消费者模式
- 生产者/消费者模式
- 生产者/消费者模式
- 生产者-消费者模式
- 【转】生产者消费者模式
- 生产者、消费者模式
- 生产者/消费者模式
- 生产者/消费者模式
- 生产者/消费者模式(转载)
- 生产者消费者模式浅析
- 生产者消费者模式浅析
- 生产者消费者模式
- 开篇
- Visual Studio 2013 不能从const char *转换为LPCWSTR
- 大白话讲解word2vec到底在做些什么
- 表格标签
- Visual Studio 2013 出现错误 error RC2108: expected numerical dialog constant
- 生产者消费者模式
- 直接插入排序
- redis安装配置使用,redis集群配置,redis集群管理,redis集群使用,php使用redis集群
- C++ Primer_4th学习笔记(3)- 引用
- 深入浅出FPGA-3-verilog HDL
- eclipse搭建android开发环境
- 利用用户行为数据(1)——userCF
- 前端最全API
- 221. Maximal Square