gpt4 book ai didi

HashMap为什么是线程不安全的?

原创 作者:qq735679552 更新时间:2022-10-15 21:11:28 12 0
gpt4 key购买 nike

  • HashMap是线程不安全的,我们应该使用ConcurrentHashMap
  • Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的
  • HashMap的线程不安全主要体现在下面两个方面:
    • 1.在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。
    • 2.在JDK1.8中,在并发执行put操作时会发生数据覆盖的情况。
  • 注:ConcurrentHashMap使用了分段锁技术来提高了并发度,不在同一段的数据互相不影响,多个线程对多个不同的段的操作是不会相互影响的。每个段使用一把锁。所以在需要线程安全的业务场景下,推荐使用ConcurrentHashMap,而HashTable不建议在新的代码中使用,如果需要线程安全,则使用ConcurrentHashMap,否则使用HashMap就足够了。

12 0 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com