Java并发学习

744 阅读1分钟

其他更多java基础文章:
java基础学习(目录)


个人能力有限,在学习过程中,发现这两个系列的文章非常全面,可以互相应照着学习,建议多次学习阅读两个系列文章

补充

偏向锁/轻量级锁/重量级锁

浅谈偏向锁、轻量级锁、重量级锁

image.png

关于非公平锁与AQS

AQS解析
并发编程——详解 AQS CLH 锁

在AQS中有个同步队列,是双链表队列,是一个FIFO的队列。所以当线程获取锁失败进入到同步队列阻塞等待时,就不再是同时竞争了,将会以同步队列的顺序释放线程。 非公平锁的同时竞争表示,在无锁的条件下,多个线程同时启动去争夺,不管同步队列中是否有阻塞线程。比如Thread1释放了锁,同步队列中有T2,T3。如果此时非公平锁线程T4启动来竞争,则大概率会由T4获取。若此时没有其他非公平锁来竞争,则按顺序释放T2线程来获取锁。

深入分析ConcurrentHashMap1.8

深入分析ConcurrentHashMap1.8的扩容实现

扩容的时候,数据从table[]到newtable[]的复制过程