java 消费者模式
来源:互联网 发布:手机拍照透视软件 编辑:程序博客网 时间:2024/05/16 02:47
//工厂
package keTangTest2;
public class Num {
private int n;
// 生产者
public synchronized void producer(){
while(0 != n){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
n++;
System.out.println("生产者:" +n);
notify();
}
// 消费者
public synchronized void consumer(){
while (0 == n) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
n--;
System.out.println("消费者:" +n);
notify();
}
}
// 生产者
package keTangTest2;
public class Add extends Thread {
private Num num;
public Add(Num num) {
super();
this.num = num;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
num.producer();
}
}
}
//消费者
package keTangTest2;
public class Cons extends Thread {
private Num num;
public Cons(Num num) {
super();
this.num = num;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
num.consumer();
}
}
}
//测试类
package keTangTest2;
public class Test {
public static void main(String[] args) {
Num num = new Num();
Add add = new Add(num);
Cons cons = new Cons(num);
Add add2 = new Add(num);
Cons cons2 = new Cons(num);
add.start();
cons.start();
add2.start();
cons2.start();
}
}
若有不正之处,请多多谅解并欢迎批评指正。
请尊重作者劳动成果,转载请标明原文链接:
http://blog.csdn.NET/weishimeng17
- Java生产者消费者模式
- 生产者消费者模式---java
- 生产者/消费者模式 (java)
- java 消费者、生产者模式
- java 消费者模式
- java生产消费者模式
- java 生产者消费者模式
- 生产者消费者模式 JAVA
- java-生产者消费者模式
- java多线程 ----生产者消费者模式
- java生产者消费者模式代码
- Java生产者消费者模式实现
- 生产者消费者模式Java实现
- Java多线程 --- 生产者消费者模式
- Java多线程 生产者消费者模式
- 生产者消费者模式(java)
- java生产者消费者模式练习
- java之生产者消费者模式
- 【IMWeb训练营作业】自定义Select
- 【NGUI】当打包一个特别大的图集时候该怎么减小图集大小?
- (转)深入理解LayoutInflater.inflate()
- MySql字符转义
- js中的forEach和jQuery中的each对比
- java 消费者模式
- IMWeb训练营作业
- 写给初学者21_android_Activity开发实用技巧
- 数值作业:最小二乘法进行线性拟合之C语言代码
- EXCEL表格转换成json数据工具
- Android四大组件之Activity生命周期分析
- c/c++常用头文件
- 自己封装的Thinkphp+Bootstrap 模态iframe其他页面
- 为什么大多数培训机构还停留在只教ssh框架?