【发布时间】:2023-04-10 22:09:01
【问题描述】:
如果多个线程向其中添加项目,HashSet 是否有可能具有重复值?
我不是从修改 equals 或 hashcode 方法的角度来看,而是从多线程环境来看。
【问题讨论】:
-
HashSet 不是线程安全的,因此不应该在不使用某种锁的情况下同时从多个线程访问它;这是您想知道的,还是您从理论上对并发更新是否会导致重复值而不是其他类型的故障特别感兴趣?
-
您能告诉我们更多有关情况吗?你看到这种情况发生了吗?如果您不应该允许多个线程同时访问该集合,这是否会发生真的重要吗?
-
@kaya3 这正是我的疑问......知道(理论上)并发更新是否会导致重复。您可能遇到的示例程序/屏幕截图会有所帮助,因为我多次尝试使用复杂的对象但没有运气体验这种情况。
-
@Steve 出于好奇,我想看看由于并发添加而导致哈希集中重复的用例。