线程池
深入理解Java线程池:ThreadPoolExecutor:https://www.cnblogs.com/liuzhihu/p/8177371.html
Java四种线程池:https://www.cnblogs.com/baizhanshi/p/5469948.html
Java线程池,shutdown、awaitTermination、shutdownNow的作用与区别:https://blog.csdn.net/u010002184/article/details/79188233
CompletionService简介、原理以及小案例:https://blog.csdn.net/qq_36898043/article/details/79733124
任务的批量提交invokeAll两种方法的区别:https://blog.csdn.net/w1014074794/article/details/51098746
ThreadLoacl
ThreadLocal用法详解和原理:https://www.cnblogs.com/coshaho/p/5127135.html
关于ThreadLocal的理解:https://www.jianshu.com/p/5c18d3ea6c58
JMM内存模型
全面理解Java内存模型(JMM)及volatile关键字:https://blog.csdn.net/javazejian/article/details/72772461
关于synchronized是否能保证可见性:https://blog.csdn.net/taotao4/article/details/43964769
volatile可以保证可见性和有序性(禁止局部指令重排),无法保证原子性(但可以保证long、double 8位字节操作的原子性)
Java中volatile如何保证long和double的原子性操作:https://agilestyle.iteye.com/blog/2359969
Java里面volatile关键字修饰引用变量的陷阱:https://blog.csdn.net/u010454030/article/details/80800098volatile的实现原理(lock指令和内存屏障):https://www.jianshu.com/p/e34469924714
Java锁是如何保证数据可见性的:https://blog.csdn.net/tomli2017/article/details/73263949
笔者实验发现,Lock可以保证Lock范围里共享变量的可见性。知乎网站佐证:https://www.zhihu.com/question/41016480
只对同一个锁保证可见性
锁
浅谈偏向锁、轻量级锁、重量级锁:https://www.jianshu.com/p/36eedeb3f912
Java中的锁分类:https://www.cnblogs.com/qifengshi/p/6831055.html
final(保证安全发布,防止this逃逸)
你以为你真的了解final吗?:https://www.jianshu.com/p/1f4b0f98cbf1
LockSupport
Java的LockSupport.park()实现分析:https://blog.csdn.net/hengyunabc/article/details/28126139
LockSupport详解 | Java并发编程:https://15838341661-139-com.iteye.com/blog/2239748
Atomic包
AtomicReference compareAndSwap是比较对象的地址吗:https://segmentfault.com/q/1010000008287803?_ea=1631295
笔者实验发现,只有同一个对象才能比较CAS成功,不同对象的成员变量内容相等也会CAS失败。也就是说可以通过set方法改变object的值(基本类型比较的则是内容)
闭锁CountDownLatch
什么时候使用CountDownLatch:http://www.importnew.com/15731.html
栅栏CyclicBarrier
J.U.C之并发工具类:CyclicBarrier:https://blog.csdn.net/chenssy/article/details/70160595
interrupte
理解java线程的中断(interrupt):https://blog.csdn.net/canot/article/details/51087772
抛出interrupteException后会设置interupte状态为false
处理不可中断阻塞: https://www.cnblogs.com/hanyuan/archive/2013/03/10/2952687.html
Timer与TimerTask
Timer与TimerTask的真正原理&使用介绍:https://blog.csdn.net/xieyuooo/article/details/8607220
TimerTask.cancel() 与 Timer.cancel() 的区别:https://blog.csdn.net/ShenDaiSun/article/details/86565311
FetureTask
揭密FutureTask:https://www.cnblogs.com/maypattis/p/5827671.html
Thread
不使用stop方法停止线程(stop会释放sync锁):https://www.cnblogs.com/DreamDrive/p/5623804.html
readWriteLock
公平锁性能比非公平锁差,因为公平锁的阻塞和唤醒多。(不支持锁升级、只支持锁降级)
JVM源码分析之Object.wait/notify实现:https://www.jianshu.com/p/f4454164c017
线程池的defaulthreadfactory会设置工作线程为非守护进程,所以main不会退出,除非线程过期或者调用shutdown。
生产者消费者
1、使用lock和两个condition;2、使用2个semaphore和一个lock
SynchronousQueue:https://www.cnblogs.com/tong-yuan/p/SynchronousQueue.html