摘要: StampedLock是Java8引入的一种新的锁机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读锁会完全阻塞写锁,它使用的依然是悲观的锁策略.如果有大量的读线程,他也有可能引起写线程的饥饿,而Stamped 阅读全文
posted @ 2019-04-16 11:21 予我渡北川 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 如果让你实现一个计数器,有点经验的同学可以很快的想到使用AtomicInteger或者AtomicLong进行简单的封装。 因为计数器操作涉及到内存的可见性和线程之间的竞争,而Atomic***的实现完美的屏蔽了这些技术细节,我们只需要执行相应的方法,就能实现对应的业务需求。 Atomic**虽然好 阅读全文
posted @ 2019-04-16 11:05 予我渡北川 阅读(589) 评论(0) 推荐(0) 编辑
摘要: https://segmentfault.com/a/1190000007282628 netty社区-简书闪电侠 :https://netty.io/wiki/related-articles.html 占小狼:https://www.jianshu.com/nb/7269354 绝尘驹 : ht 阅读全文
posted @ 2019-04-15 10:43 予我渡北川 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 回顾一下,如果wait()方法不在同步块中,代码的确会抛出异常: 结果是: 为什么呢? Lost Wake-Up Problem 事情得从一个多线程编程里面臭名昭著的问题"Lost wake-up problem"说起。 这个问题并不是说只在Java语言中会出现,而是会在所有的多线程环境下出现。 假 阅读全文
posted @ 2019-04-12 09:10 予我渡北川 阅读(1380) 评论(1) 推荐(2) 编辑
摘要: https://www.jianshu.com/p/c1b616ff1130 http://youzhixueyuan.com/the-underlying-structure-and-principle-of-hashmap.html 为什么Map桶中个数超过8才转为红黑树: https://mp 阅读全文
posted @ 2019-04-11 11:24 予我渡北川 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xrq730/p/5041921.html https://mp.weixin.qq.com/s?__biz=MjM5MzA1Mzc3Nw==&mid=2247484283&idx=1&sn=d2717dbcdc9c086b329f91c3cfeab8 阅读全文
posted @ 2019-04-11 11:18 予我渡北川 阅读(205) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xrq730/p/4907559.html https://www.cnblogs.com/xrq730/p/9280404.html 阅读全文
posted @ 2019-04-11 11:17 予我渡北川 阅读(73) 评论(0) 推荐(0) 编辑
摘要: Java 内存模型 屏蔽掉各种硬件和操作系统的内存访问差异。 1 主内存和工作内存之间的交互 2 对于 volatile 型变量的特殊规则 关键字 volatile 是 Java 虚拟机提供的最轻量级的同步机制。 一个变量被定义为 volatile 的特性: 保证此变量对所有线程的可见性。但是操作并 阅读全文
posted @ 2019-04-11 10:41 予我渡北川 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 在学习之前,最好先了解下如下知识: 1、ReentrantLock的实现和原理。 2、Synchronized的实现和原理。 3、硬件对并发支持的CAS操作及JVM中Unsafe对CAS的实现。 4、JDK1.7中关于ConcurrentHashMap的实现原理。 5、volatile的实现原理。 阅读全文
posted @ 2019-04-11 10:09 予我渡北川 阅读(262) 评论(0) 推荐(0) 编辑
摘要: // 阅读全文
posted @ 2019-04-11 10:00 予我渡北川 阅读(108) 评论(0) 推荐(0) 编辑