要是用wait/notify就是挺麻烦的。我编了一个小程序,四个类。楼主看一下吧。测了一下,还算成功。我把初始数值设置成1了,因为,如果设置成0,B线程一跑,有可能减成负数,这样,要是加不到整数,就没有什么意思了。这也许是个小bug吧。
代码入下:(我用sleep方法主要目地是为了测试的时候好看出结果。)
public class A extends Thread {
private Num number;
public A(Num number) {
super();
this.number = number;
}
public static void main(String[] args) throws InterruptedException {
Num number = new Num();
A a = new A(number);
B b = new B(number);
a.start();
b.start();
while(true){
number.cOperator(Thread.currentThread());
Thread.sleep(1);//定时检查,我设置成了1毫秒。
}