⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monitorvehicletracker.java

📁 java concurrency in practice 源码. JAVA并发设计
💻 JAVA
字号:
package net.jcip.examples;import java.util.*;import net.jcip.annotations.*;/** * MonitorVehicleTracker * <p/> * Monitor-based vehicle tracker implementation * * @author Brian Goetz and Tim Peierls */@ThreadSafe public class MonitorVehicleTracker {    @GuardedBy("this") private final Map<String, MutablePoint> locations;    public MonitorVehicleTracker(Map<String, MutablePoint> locations) {        this.locations = deepCopy(locations);    }    public synchronized Map<String, MutablePoint> 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)            throw new IllegalArgumentException("No such ID: " + id);        loc.x = x;        loc.y = y;    }    private static Map<String, MutablePoint> deepCopy(Map<String, MutablePoint> m) {        Map<String, MutablePoint> result = new HashMap<String, MutablePoint>();        for (String id : m.keySet())            result.put(id, new MutablePoint(m.get(id)));        return Collections.unmodifiableMap(result);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -