【ReentrantLock源码分析】公平锁&非公平锁
首先,先看一下ReentrantLock类结构。
这里可以看到,在ReentrantLock内部,有个Sync内部静态抽象类,该类继承自AbstractQueuedSynchronizer(AQS)
,并且有2个内部静态类的实现NonfairSync
与FairSync
,从类的名字就能看出来公平锁与非公平锁是通过Sync实现的。
首先,先看一下ReentrantLock类结构。
这里可以看到,在ReentrantLock内部,有个Sync内部静态抽象类,该类继承自AbstractQueuedSynchronizer(AQS)
,并且有2个内部静态类的实现NonfairSync
与FairSync
,从类的名字就能看出来公平锁与非公平锁是通过Sync实现的。
前边介绍了HttpCore里基于传统阻塞IO实现,接下来这篇会比较长,主要是在架构层面上介绍HttpCore+HttpCore NIO.
NIO是什么我这里就不具体介绍了,如果有兴趣可以去看别人写的文档.下面这两个链接介绍内容都是一致的,基于老外写的一篇文章.
HttpComponents前身是大名鼎鼎的HttpClient,考虑到架构或者实现上改动太大,HttpComponents诞生了(重写),它将原有HttpClient进行拆分、模块化.