文章 https://mp.weixin.qq.com/s/1yWSfdz0j-PprGkDgOomhQ 的学习笔记
为什么要ConcurrentHashMap?
即使JDK1.8的HashMap
已经不会出现环形链表,但仍然线程不安全
.
例如,若多个线程同时执行put
方法,可能会同时进入第627行的判断条件,发生更新覆盖的情况
文章 https://mp.weixin.qq.com/s/1yWSfdz0j-PprGkDgOomhQ 的学习笔记
即使JDK1.8的HashMap
已经不会出现环形链表,但仍然线程不安全
.
例如,若多个线程同时执行put
方法,可能会同时进入第627行的判断条件,发生更新覆盖的情况
默认初始长度为16,每次扩容一倍
HashMap在并发插入元素的扩容时,会出现线程安全问题,可能会出现环形链表,让下一次读操作出现死循环
扩容源码
1 | void transfer(Entry[] newTable, boolean rehash) { |
.
先照着程序🐏的视频做https://www.bilibili.com/video/BV1Yb411a7ty
【踩坑1】注意仓库创建时就要设为public,设置成private会失败
域名强制小写,所以Github名字中的大写字母会转为小写
最后得到一个域名为<Github名字>.github.io
的博客,但是无法插入图片并且无法渲染数学公式