java - 单例类的不同锁

标签 java multithreading jakarta-ee synchronization

我有一个包含 3 个 HashMap 的单例类。每个 HashMap 就像一个池。我把未使用的条目放在那里。我遇到了并发修改异常,所以我打算对它们实现同步。我的问题是,如果我对所有这些都使用相同的锁,则可能会出现性能问题。因为当我为该池创建条目时,它是通过 Web 服务调用进行的。由于我只需要每个 hashmap 不同时运行,那么为它们创建 3 个对象锁可以吗?

最佳答案

我建议您使用ConcurrentHashMap .

The table is internally partitioned to try to permit the indicated number of concurrent updates without contention.

尝试使用 concurrencyLevel 参数调整性能。

关于java - 单例类的不同锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823182/

相关文章:

multithreading - 如何管理线程的返回值?

c++ - 在 UI Thread 中创建对话框导致崩溃

java - 消息驱动bean可以从主机队列中拾取消息吗?

java - Wicket/Java UI框架开发

java - Scriptlet 将任意代码插入 servlet 的 _jspService 方法

java - 并发读取/写入java中的变量

java - 放气机 : is it possible to clone state (or rollback)?

java - 使用java从浏览器运行用户系统中的exe文件

java - 使用 Spring Reactive (R2DBC) 连接 MSSQL,创建 bean 时出错

c# - 线程是在 C# 用户级还是内核级创建的?