java - HashMap同步

标签 java

我有一张 map ,我正在同步它。同步后插入 map 的行为会有什么不同吗?

HashMap<String,String> myMap = new HashMap<String,String>();
myMap.put("abc","123");
myMap.put("efg","456");
Collections.synchronizedMap(myMap);
myMap.put("hij","789");
myMap.put("jkl","234");

最佳答案

调用 Collections.synchronizedMap(myMap); 之后的插入将是线程安全的,之前的插入将不是线程安全的。 Collections.synchronizedMap(myMap); 所做的只是将 map 对象包装在线程安全的 SynchronizedMap 对象中。除此之外没有区别。

此外,您需要将代码更改为 myMap = Collections.synchronizedMap(myMap);

关于java - HashMap同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620049/

相关文章:

java.lang.IllegalStateException : ScrollView can host only one direct child

java - JSR 303 Bean 验证 + Javascript 客户端验证

java - 如何通过 ID 获取用户并从 firebase 身份验证数据库中删除它

javascript - 重定向在 springboot Controller 中不起作用

java - 消息驱动 Bean 消息

java - 在数据库事务期间进行 api 调用不是一个好习惯吗?

java - Spring Boot 单元测试 - 服务方法未被调用

java - 一般问题+如何: object that can copy another object's values?

java - Spring Boot从application.properties读取值

java - Tomcat内存泄漏 - 停止Guava Finalizer线程