java - 两个线程访问同一个 hashmap,一个线程在 2 分钟后继续运行其他线程并清除该 hashmap,如何在 java 中处理这个

标签 java multithreading timer timertask

第一个线程是收听主题的 JMS 订阅者。一旦收到消息,它就会在 HashMap 中添加/更新/删除条目。另一个线程使用 TimerClass 每 2 分钟运行一次,并读取同一散列图的内容并将其存储在文件中并清除散列图。请建议应该使用哪种 HashMap - 并发或同步?还有其他方法可以实现这一目标吗?

最佳答案

同步将是必要的。 因为 HashMap 没有同步。

使用 Collections.SynchronizedMap 或移动到 Hashtable

关于java - 两个线程访问同一个 hashmap,一个线程在 2 分钟后继续运行其他线程并清除该 hashmap,如何在 java 中处理这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566101/

相关文章:

java - 如何更改 JFileChooser 对话框的标题

ruby - popen 内的超时有效,但超时内的 popen 无效?

java - 如何在 Android 的 TextView 中显示计时器?

swift - 我需要一个可靠的 Swift 3 秒表

值受键的类型参数限制的 Java 映射

java - 强制 Hibernate 插入而不使用 Select 语句

java - 删除 ArrayList 中的连续重复项 [Java]

java - 多个 FireBase 监听器调用,有异常吗?

java - 按下按钮时运行线程

c# - 定时器获取间隔时间