java concurrent /** 基于监视器模式的车辆追踪 */public class MonitorVehicleTracker {private final Map locations;public MonitorVehicleTracker(Map locations) { this.locations = deepCopy(locations); } public synchronized Map getLoca
          /** 基于监视器模式的车辆追踪 */
public class MonitorVehicleTracker {
	private final Map
 
   locations;
	
	public MonitorVehicleTracker(Map
  
    locations) { this.locations = deepCopy(locations); } public synchronized Map
   
     getLocations() { return deepCopy(locations); } public synchronized MutablePoint getLocation(String id) { MutablePoint loc = locations.get(id); return loc == null ? null : new MutablePoint(loc); } public synchronized void setLocation(String id, int x, int y) { MutablePoint loc = locations.get(id); if (loc == null) System.out.println("No such ID: " + id); loc.x = x; loc.y = y; } private Map
    
      deepCopy(Map
     
       m) { Map
      
        result = new HashMap
       
        (); for (String id : m.keySet()) { result.put(id, new MutablePoint(m.get(id))); } return Collections.unmodifiableMap(result); } }
        
       
      
     
    
   
  
        
        