该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package com.wong;public class Computer
{
private int cNumber = 0;
private boolean flag = true;//可以生产,不能搬走;
/**
*
*/
public synchronized void produce()
{
if(!flag)
{
try
{
super.wait();
}
catch(Exception e)
{
e.printStackTrace();
}
}
cNumber++;
System.out.println("生产了一台电脑");
flag = false;
super.notify();
}
public synchronized void move()
{
if(flag)
{
try
{
super.wait();
System.out.println("1");
}
catch(Exception e)
{
e.printStackTrace();
}
}
try
{
Thread.sleep(300);
}
catch(Exception e)
{
e.printStackTrace();
}
cNumber--;
System.out.println("搬走了一台电脑");
flag = true;
super.notify();
}
}
这个类里的方法我准备让另外两个类来调用并继承runnable,然后我发现一直都是卡在move方法这里,我觉得是没有成功唤醒move方法所在类的线程的原因,可我调用了notify()方法,用了notifyAll也是这样,请问是为什么呢?弄来弄去没搞清楚,想请教下有空的大佬,万分感谢!!