ConcurrentHashMap
文章平均质量分 95
养歌
任何傻瓜都能写出计算机可以理解的代码,好的程序员能写出人能读懂的代码。
展开
-
ConcurrentHashMap 面试题 30 问
因为CAS需要在操作值的时候检查下值有没有发生变化,如果没有发生变化则更新,但是如果一个值原来是A,变成了B,又变成了A,那么使用CAS进行检查时会发现它的值没有发生变化,但是实际上却变化了,这就是ABA问题。.....................原创 2022-07-29 09:57:06 · 4651 阅读 · 4 评论 -
线程安全之ConcurrentHashMap源码分析
在上一篇文章中,讲解了HashMapjdk1.7使用头插法,容易形成环形链表,在jdk1.8改为尾插法,虽然解决了环形链表的问题,但是会导致数据丢失的问题,所以我们说HashMap在多线程环境下是不安全的。所以,不管是jdk1.7还是jdk1.8的HashMap 都存在线程安全的问题。那么在多线程环境下应该这样去保证线程安全呢,有什么办法呢?上一篇文章中有说到3种解决方案:在多线程环境下用HashTable来解决线程安全的问题,put或者get方法源码如下图: //put方法 publi原创 2021-11-19 11:17:04 · 812 阅读 · 0 评论