![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
geeker_leon
这个作者很懒,什么都没留下…
展开
-
HashMap & LinkedHashMap & ConcurrentHashMap
HashMap 内部用数组存储内部类Node包装的Key,Value,用Key的hash code来计算数据在数组中的位置,如果遇到计算出来的位置已经有值,则以链表的方式在后面添加,当链表长度变大时,则将其转为红黑树 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict...原创 2019-08-02 15:16:47 · 115 阅读 · 0 评论 -
Java concurrency in practice
Aspects in Concurrency Atomicity 竞态条件(Race Condition): 计算的正确性取决于线程执行顺序,如:Check-And-Act,既通过一个可能失效的状态来决定下一步动作 Visibility 失效数据(Data Loss): 线程读取到失效的共享变量 除了锁机制,volatile可以保证变量的可见性 Publish and Escape 发布(Pub...原创 2019-08-03 17:29:30 · 410 阅读 · 0 评论 -
多线程安全的单例模式
单例模式被认为是最简单的设计模式,属于创建型(设计模式又被分为:创建型、结构型和行为型),经常被用到,下面以我在实际项目中用到的一个单例模式为例,看下如何利用经典的两次判空方法令其高效、安全得工作在多线程环境(见代码中注释)。 package core; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session...原创 2019-07-20 22:41:45 · 123 阅读 · 0 评论