已有101人关注
以下程序错在哪儿 调试正确但是运行不出结果 《Java入门经典》例12.9
发表在Java图书答疑 2015-02-14
是否精华
版块置顶:
以下程序错在哪儿 调试正确但是运行不出结果
public class Water {
static Object water=new Object();
static int total=6;
static int mqsl=3;
static int ps=0;
}
public class ThreadA  {
void pswork(){
System.out.println("水塘是否没有水:"+isEmpty());
if(isEmpty()){
try{
Water.water.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
else{
Water.ps++;
System.out.println("Water.ps"+Water.ps);

}
}
public boolean isEmpty(){
return Water.mqsl==Water.ps?true:false;

public void run() throws InterruptedException{
while(Water.mqsl<Water.total){
if(isEmpty())
System.out.println("水塘目前没有水,排水线程被挂起");
System.out.println("排水工作开始");
pswork();
sleep(1000);
}

}
private void sleep(int i) {
// TODO 自动生成的方法存根

}
public void start() {
// TODO 自动生成的方法存根

}
}
public class ThreadB {
void jswork(){
synchronized(Water.water){
Water.mqsl++;
Water.water.notify();
System.out.println("水塘目前进水量为"+Water.mqsl);

}
}

public void run() throws InterruptedException {
while (Water.mqsl < Water.total) {
System.out.println("进水工作开始");
jswork();
sleep(3000);
}
}

private void sleep(int i) {
// TODO 自动生成的方法存根

}

public void start() {
// TODO 自动生成的方法存根

}

}

public class Thread {
public static void main(String[] args){
ThreadA threadA=new ThreadA();
ThreadB threadB=new ThreadB();
    threadB.start();
    threadA.start();

}
}
分享到:
精彩评论 4
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-02-14
沙发
ThreadA和ThreadB都没有继承Thread类,并且两个类的public void start() 方法里没有写任何逻辑,所以没有执行任何实际的代码。
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2015-02-14
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
ThreadA和ThreadB都没有继承Thread类,并且两个类的public void start() 方法里没有写任何逻辑,所以没有执行任何实际的代码。
[/FIELDSET]

回复:
  
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2015-02-14
地板
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
ThreadA和ThreadB都没有继承Thread类,并且两个类的public void start() 方法里没有写任何逻辑,所以没有执行任何实际的代码。
[/FIELDSET]

回复:
  
[/FIELDSET]

回复:
  帮我改改程序一下  哪儿错了 帮我改改
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-02-15
4L
public class Water {
static Object water = new Object();
static int total = 6; //总体积
static int mqsl = 3; //已有水量
static int ps = 0; //排水量

public static void main(String[] args) {
ThreadA threadA = new ThreadA();
ThreadB threadB = new ThreadB();
threadA.start();
threadB.start();
}
}

class ThreadA extends Thread {
void pswork() {
synchronized (Water.water) {
System.out.println("水塘是否没有水:" + isEmpty());
if (isEmpty()) {
try {
Water.water.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
Water.ps++;
System.out.println("水塘目前排水量" + Water.ps);
}
}
}

private boolean isEmpty() {
return Water.mqsl == Water.ps?true:false;
}

public void run() {
while (Water.mqsl < Water.total) {
if (isEmpty()) {
System.out.println("水塘目前没有水,排水线程被挂起");
}
System.out.println("排水工作开始");
pswork();
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

class ThreadB extends Thread {
void jswork() {
synchronized (Water.water) {
Water.mqsl++;
Water.water.notify();
System.out.println("水塘目前进水量为" + Water.mqsl);
}
}

public void run() {
while (Water.mqsl < Water.total) {
System.out.println("进水工作开始");
jswork();
try {
sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照