算了,这个问题先放下来,我们继续. 既然出现了不同步的问题,那很显然,解决的方法就是synchronized:将TwoCounter的run方法和SynchTest方法都变成同步方法.这样做代表什么意思呢? 有什么好处呢?请参考Think in Java的14.2.2节,里面有非常详尽透彻的阐述.非凡是对监视器,也就是我们通常所说的对象锁的概念,书中讲的很清楚.
总之,需要修改的代码如下: class TwoCounter extends Thread { public synchronized void run() { while (true) { count1++; count2++; System.out.println("Count1="+count1+",Count2="+count2); try { sleep(500); } catch (InterruptedException e){} } }