为了验证同步,你需要将synthornized函数加在会同时进行存款的语句上,在你的代码中是run方法,
你可以将run方法声明为synthornized的,或者堆其中的存款语句同步
1:public void synthornized run()
2:synthornized(Object o){
 for(int i=0;i<7000000;i++){
LocalAccount.publicAccount+=10;
}

解决方案 »

  1.   

    本来就应该正确,这里同步和不同步结果一样。
    LocalAccount.publicAccount+=10
    这句本来就是同步的。
      

  2.   

    LocalAccount.publicAccount+=10你这里只有增加操作。如果你还有读取,判断操作,就会有不同结果了。举例:
    System.out.println(LocalAccount.publicAccount);
    LocalAccount.publicAccount+=10;
    System.out.println(LocalAccount.publicAccount);
    这里需要同步。不然结果,肯定不一样。(也就是所有可能打出的结果只差不是10,搂主试试)在多线程中楼主最好打个变量标示不同的线程:System.out.println(LocalAccount.hashCode+":"+LocalAccount.publicAccount);