生产者 和 消费者 一个 小案例
来源:互联网 发布:产业安全数据直报 编辑:程序博客网 时间:2024/05/17 04:37
package com.thread;
/**
* 生产者
* @author CP
*
*/
class prod implements Runnable{
mount mou;
public prod(mount mou) {
this.mou = mou;
}
public void run() {
bread brea=null;
for (int i = 0; i < 20; i++) {
brea=new bread(i);
mou.pul(brea);
}
}
}
/**
* 消费者
* @author CP
*
*/
class clinet implements Runnable{
mount mou;
public clinet(mount mou) {
this.mou = mou;
}
public void run() {
bread brea=null;
for (int i = 0; i < 20; i++) {
brea=mou.pop();
}
}
}
/**
* 面包
* @author CP
*
*/
class bread{
int id;
public bread(int id) {
this.id = id;
}
public String toString() {
return "bread:"+id;
}
}
/**
* 容器
* @author CP
*
*/
class mount{
int index=0;
bread[] breadStrck=new bread[6];
/**
* 加入
* @param brea
*/
public synchronized void pul(bread brea)
{
while(index==breadStrck.length)
{
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("-----生产--------"+brea+"-------------");
breadStrck[index]=brea;
index++;
this.notifyAll();
}
/**
* 取出
* @return
*/
public synchronized bread pop()
{
while(index==0)
{
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
index--;
this.notifyAll();
System.out.println("------消费-------"+breadStrck[index]+"-------------");
return breadStrck[index];
}
}
public class TestThread {
public static void main(String[] args) {
mount moun=new mount();
clinet cli=new clinet(moun);
prod pro=new prod(moun);
Thread thrPro=new Thread(pro);
Thread thrCli=new Thread(cli);
thrPro.start();
thrCli.start();
}
}
- 生产者 和 消费者 一个 小案例
- 生产者和消费者案例
- 多线程案例:生产者和消费者
- Java生产者和消费者案例
- java生产者和消费者案例
- 一个生产者和一个消费者
- 线程经典案例---(生产者和消费者)
- java中生产者和消费者应用案例
- java多线程之生产者和消费者案例
- java生产者与消费者经典案例小demo
- 一个生产者与消费者的简单编程案例
- Java多线程的一个案例-生产者消费者问题
- 环形缓冲区(通俗讲:生产者消费者的一个案例)
- 线程操作案例——生产者和消费者
- Java多线程操作案例-生产者和消费者实现
- 关于Java多线程------(4,经典案例---生产者和消费者)
- java多线程之生产者和消费者经典问题案例
- 多线程案例:生产者与消费者
- 快捷键总结
- 新手学习GTK入门教程 第三讲
- 进制数的总结
- 谈谈自己的新人生价值观
- API和源码例子(java)
- 生产者 和 消费者 一个 小案例
- 机房值班的总结
- php小题目
- vc6能用的SDK和库列表
- CentOS5.4/RHEL5.4上安装nvidia官方驱动
- Powershell的字符串
- MQ是怎么存放消息的[windows平台]
- 请大家帮帮忙!这是一个java考试时间的问题!
- java简单任务池