java - 同步方法中的java synchronized(this) 块

  显示原文与译文双语对照的内容

下面是在练习中 java并发的代码 Fragment,同时讨论了的开放调用。 我不能得到的是声明,方法,它已经同步并重新调用了同一方法中的synchronized(this) 块,为什么? for类型错误同步方法已经保存了这里方法的锁,然后为同一对象重新设置了为什么?


 @ThreadSafe 


 class Taxi { 


 @GuardedBy("this") private Point location, destination; 


 private final Dispatcher dispatcher; 


. . . 


 public synchronized Point getLocation() { 


 return location; 


 } 


 public synchronized void setLocation(Point location) { 


 boolean reachedDestination; 


 synchronized (this) { 


 this.location = location; 


 reachedDestination = location.equals(destination); 


 } 


 if (reachedDestination) 


 dispatcher.notifyAvailable(this); 


 } 


 } 



时间: 原作者:

这是本书的错误。 请参见勘误表。

在清单 10.6中,Taxi.setLocation 不应该是同步的方法。 ( 但是,它的主体中的同步块是正确的。

原作者:
...