请问boolean flag=false;可否改为boolean flag;

来源:5-1 线程间通信

慕村2333636

2021-11-16 23:40:40

public class Queue {

private int n;

boolean flag=false;

public synchronized int get() {

if(!flag){

try {

wait();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

System.out.println("消费:"+n);

flag=false;//消费完毕,容器中没有数据

notifyAll();

return n;

}


https://img.mukewang.com/climg/6193d04d09fe1b7a04590273.jpg


public synchronized void set(int n) {

if(flag){

try {

wait();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

System.out.println("生产:"+n);

this.n = n;

flag=true;//生产完毕,容器中已经有数据

notifyAll();

}

}


写回答

1回答

好帮手慕小蓝

2021-11-17

同学你好,可以这样修改,因为flag作为成员属性,它的默认值就是false。不过为了提高代码的可读性,不建议这样书写。

祝学习愉快~


0

0 学习 · 9886 问题

查看课程