我正在尝试实现一个用于 GPS 监控的 servlet 并尝试创建简单的缓存,因为我认为它会比SQL
对每个 Http 请求的请求更快。简单的方案:
在该init()
方法中,我将每辆车的一个点读入HashMap
(vehicle id = key, location in json = value) 。之后,一些请求尝试读取这一点,一些请求尝试更新(一辆车更新一项)。当然,我想尽量减少同步,所以我阅读了 javadoc:
http ://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html
请注意,此实现不同步。如果多个线程同时访问一个哈希映射,并且至少有一个线程在结构上修改了映射,则必须在外部进行同步。(结构修改是添加或删除一个或多个映射的任何操作;仅更改与实例已包含的键关联的值不是结构修改。)
如果我是对的,我的任务中没有任何同步,因为我只做“不是结构修改==更改与实例已包含的键关联的值)”。这是一个正确的说法吗?