为何如下显示?




源代码如下:
public class Computation extends Thread{
private int result;
public Computation(){

}
public void run(){
countprint(this.result);
}
public synchronized void countprint(int res){

result=res;
result=result +2;
System.out.println(result+" ");
notify();
}
public static void main(String[] args){
Thread t = new Thread(new Computation());
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}

解决方案 »

  1.   

    我把那个notify(); 去掉后就好了,结果是2,4,6,8 但之前的结果是不确定.有时候2,4,4,4 有时候2,4,6,6...
    我也很奇怪啊 怎么上了锁还会有输出一样的情况啊?
    等高手了...
      

  2.   

    哦 我想我会了....是不是因为你调用countprint的时候已经传进去参数了,传进去参数后才被阻塞的,所以和没阻塞没啥区别.....
      

  3.   

    在这里 Computation 实现Runnable接口就足够了啊。