首页上一页 1 下一页尾页 4 条记录 1/1页
以下程序错在哪儿 调试正确但是运行不出结果 《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();
}
}
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();
}
}