随笔分类 - JUC
java.util.concurrent package
摘要:Fork/Join是什么? Fork意思是分叉,Join为合并。Fork/Join是一个将任务分割并行运行,然后将最终结果合并成为大任务的结果的框架,父任务可以分割成若干个子任务,子任务可以继续分割,提供我们一种方便的并行任务功能,满足实际场景的业务需求,思想类似于MapReduce。任务的分割必须
阅读全文
摘要:StampedLock是Java8引入的一种新的锁机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读锁会完全阻塞写锁,它使用的依然是悲观的锁策略.如果有大量的读线程,他也有可能引起写线程的饥饿,而Stamped
阅读全文
摘要:如果让你实现一个计数器,有点经验的同学可以很快的想到使用AtomicInteger或者AtomicLong进行简单的封装。 因为计数器操作涉及到内存的可见性和线程之间的竞争,而Atomic***的实现完美的屏蔽了这些技术细节,我们只需要执行相应的方法,就能实现对应的业务需求。 Atomic**虽然好
阅读全文
摘要:在学习之前,最好先了解下如下知识: 1、ReentrantLock的实现和原理。 2、Synchronized的实现和原理。 3、硬件对并发支持的CAS操作及JVM中Unsafe对CAS的实现。 4、JDK1.7中关于ConcurrentHashMap的实现原理。 5、volatile的实现原理。
阅读全文
摘要:相关博文: https://segmentfault.com/a/1190000008693801 https://www.jianshu.com/p/fa1eac9710c8 线程池大小设置 https://www.cnblogs.com/lengender-12/p/6869554.html h
阅读全文
摘要:AbstactQueuedSynchronizer的基本数据结构 AbstractQueuedSynchronizer的基本数据结构为Node,关于Node,JDK作者写了详细的注释,这里我大致总结几点: 下面我用一张表格总结一下Node中持有哪些变量且每个变量的含义: 关于SIGNAL、CANCE
阅读全文
摘要:一、Java 并发包实现 二、Java 线程状态转换图
阅读全文

浙公网安备 33010602011771号