java线程没被唤醒_请问大佬,为什么没成功唤醒线程?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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也是这样,请问是为什么呢?弄来弄去没搞清楚,想请教下有空的大佬,万分感谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值