百木园-与人分享,
就是让自己快乐。

java中ConcurrentHashMap和HashTable的简介说明

转自:

http://www.java265.com/JavaCourse/202204/2950.html

ConcurrentHashmap:

乐观锁+Sysnchronized

多线程并发向同一个散列桶添加元素时若散列桶为空,则触发乐观锁机制,线程获取\"散列桶\"中的版本号,在添加元素之前判断线程中的版本号与桶中的版本号是否一致

致,添加成功不一致,自旋若散列桶不为空,,则使用synchroinized.先访问到的线程给头结点解

锁,形成链表或\"红黑树\",JDK1.8中ConcrruentHashMap在保证线程安全的同时允许最大程序的多线程并发执行


下文笔者讲述ConcurrentHashMap和HashTable的不同之处,如下所示:

ConcurrentHashMap使用多个存储桶来存储数据
  使用这种方式可避免读取锁定
  其性能比HashTable优秀
HashTable则是使用一个简单的同步锁进行每次的读写
  
注意事项:
   1.ConcurrentHashMap和HashTable都是线程安全的
   2.单线程下,笔者建议使用HashMap这个容器 

来源:https://www.cnblogs.com/java265/p/16482331.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » java中ConcurrentHashMap和HashTable的简介说明

相关推荐

  • 暂无文章