希望大家帮忙偶找找这个奇怪错误的原因!
来源:互联网 发布:电力系统谐波仿真软件 编辑:程序博客网 时间:2024/06/10 10:55
class Order1 {
private static int i = 0;
private int count = i++;// count用来记数, 这里借助一个静态变量来对所创建的对象进行记数
public Order1() {
if(count == 10) {
System.out.println("Out of food, closing");
System.exit(0);
}
}
public String toString() {
return "#" + count;
}
}
class WaitPerson1 extends Thread {
private Restaurant1 res;
private String name;
public WaitPerson1(Restaurant1 rest, String name){
this.res = rest;
this.name = name;
this.start();
}
public void run() {
synchronized(res) {
while(!res.isHaveOrder()) { //如果没有定单就等待
try {
res.wait();
//System.out.println(Thread.currentThread() + " is mantory!");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
// 这句代码不可以放在while()循环中,否则可以看到有的线程抢到的是null
System.out.println("WaitPerson " + name + " got " + res.consume());
//System.out.println(Thread.currentThread() + " is alive!");
}
}
}
class Chef1 extends Thread {
private Restaurant1 res;
private String name;
public Chef1(Restaurant1 rest, String name) {
this.res = rest;
this.name = name;
this.start();
}
public void run() {
while(true) {
if(!res.isHaveOrder()) {
System.out.println(name + " produces Order " + res.produce());
synchronized(res) {
res.notifyAll();
}
}
}// end while
}
}
public class Restaurant1 {
private Order1 order;
public Order1 produce() {
order = new Order1();
return order;
}
public Order1 consume() {
Order1 temp = order;
order = null;
return temp;
}
public boolean isHaveOrder() {
return order != null;
}
public static void main(String[] args) {
Restaurant1 res = new Restaurant1();
new WaitPerson1(res, "snow");
new WaitPerson1(res, "snee");
new Chef1(res, "tree");
}
}
但是输出结果只有是:
tree produces Order #0
Thread[Thread-1,5,main] is mantory!
WaitPerson snee got #0
Thread[Thread-1,5,main] is alive!
Thread[Thread-0,5,main] is mantory!
tree produces Order #1
Thread[Thread-0,5,main] is mantory!
WaitPerson snow got #1
Thread[Thread-0,5,main] is alive!
tree produces Order #2
为什么到这个地方就停止了???
- 希望大家帮忙偶找找这个奇怪错误的原因!
- 希望大家多多帮忙
- 做课程设计遇到的问题,希望大家帮忙解决,谢谢!
- 大家来帮我找找错误吧
- 帮忙看看 这个错误
- 我是初学者 希望大家多多帮忙
- 线性表中插入一个元素,麻烦大家给我找找错误的地方,谢谢了!
- 希望这个博客能成为大家技术交流的平台!
- 大家帮忙看看 这个js怎么写?
- vb连接数据库中数据集的问题!!!!!(希望大家可以帮忙下,,谢了!!!)
- 我的个人简历 希望大家帮忙给点建议 看看怎么能吸引人啊
- 自己写的android小游戏参加google android挑战赛,希望大家帮忙投个票
- 贪吃蛇的web版 出现了问题 希望大家帮忙留言改正
- oracle 分析函数(增加中..希望大家帮忙收集)
- 出现一个异常希望大家能帮忙解决!
- openxava出现异常,希望大家能帮忙解决!!!
- 给大家一点编码规范。希望有帮忙
- java applet 小程序 有错 希望大家帮忙一下
- 什么是手机软件测试
- Windows API一日一练(68)QueryPerformanceCounter函数
- js+DHTML的客户端流程图
- 数据结构学习
- Jini
- 希望大家帮忙偶找找这个奇怪错误的原因!
- 终于决定学c++啦
- 数据结构学习笔记--二叉表达式树
- WMI脚本
- showarra.c
- showasin.c
- C# 中的委托和事件
- showatan.c
- showcabs.c