pra*_*ala 2 java thread-safety concurrenthashmap locks
首先,我将描述我想要的内容,然后我会详细说明我正在考虑的可能性.我不知道哪个最好,所以我想要一些帮助.
我有一个哈希映射,我从中读取和写入操作Servlet
.现在,因为这Servlet
是在Tomcat上,我需要哈希映射是线程安全的.基本上,当它被写入时,没有别的东西应该写入它,也没有任何东西也应该能够读取它.
我已经看到ConcurrentHashMap
但是注意到它的get方法不是线程安全的.然后,我看到了锁和一些叫做synchronized的东西.
我想知道哪种方法最可靠.
编辑:删除虚假信息
无论如何,该synchronized
关键字是一个安全的选择。它阻止任何线程在块内访问该对象synchronized
。
// Anything can modify map at this point, making it not thread safe
map.get(0);
Run Code Online (Sandbox Code Playgroud)
相对于
// Nothing can modify map until the synchronized block is complete
synchronized(map) {
map.get(0);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11953 次 |
最近记录: |