
aqs
varyall
这个作者很懒,什么都没留下…
展开
-
AQS简简单单过一遍
前言回顾前面:多线程三分钟就可以入个门了!Thread源码剖析多线程基础必要知识点!看了学习多线程事半功倍Java锁机制了解一下只有光头才能变强!本来我是打算在这章节中写Lock的子类实现的,但看到了AQS的这么一个概念,可以说Lock的子类实现都是基于AQS的。AQS我在面试题中也见过他的身影,但一直不知道是什么东西。所以本篇我就来讲讲AQS这个玩意吧,至少知道它的概念是什么,对吧~那么接下来我...转载 2018-05-20 13:21:37 · 424 阅读 · 0 评论 -
CLH队列锁
CLH锁即Craig, Landin, and Hagersten (CLH) locks。CLH锁是一个自旋锁。能确保无饥饿性。提供先来先服务的公平性。CLH锁也是一种基于链表的可扩展、高性能、公平的自旋锁,申请线程仅仅在本地变量上自旋,它不断轮询前驱的状态,假设发现前驱释放了锁就结束自旋。SMP(Symmetric Multi-Processor)。即对称多处理器结构,指server中多个CP...转载 2018-05-15 02:56:46 · 5574 阅读 · 0 评论 -
基于AQS实现的Java并发工具类
本文主要介绍一下基于AQS实现的Java并发工具类的作用,然后简单谈一下该工具类的实现原理。其实都是AQS的相关知识,只不过在AQS上包装了一下而已。本文也是基于您在有AQS的相关知识基础上,进行讲解的CountDownLatch作用CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他一个或者多个线程的操作执行完后再执行。单词Latch的中文翻译是门闩,也就是有“门...转载 2018-05-16 00:28:35 · 503 阅读 · 0 评论 -
Java并发包源码学习之AQS框架(二)CLH lock queue和自旋锁
上一篇文章提到AQS是基于CLH lock queue,那么什么是CLH lock queue,说复杂很复杂说简单也简单, 所谓大道至简:CLH lock queue其实就是一个FIFO的队列,队列中的每个结点(线程)只要等待其前继释放锁就可以了。AbstractQueuedSynchronizer是通过一个内部类Node来实现CLH lock queue的一个变种,但基本原理是类似的。在介绍No...转载 2018-05-16 00:28:42 · 277 阅读 · 0 评论