自Java1.6引入的LockSupport为开发者提供新的阻塞、唤醒线程的原语方法,只是平时都是使用已经封装好的各种Lock、Latch、Synchronizer并不常见到。在学习过程中看到这篇对比LockSupport.park() 方法和wait() 方法的示例Java多线程系列–“JUC锁”07之 LockSupport 来自skywang12345是的引起自己诸多疑惑,便打算按照编码实践一番。
一行一行源码分析清楚AQS[转]
在分析java并发包java.util.concurrent源码的时候,少不了需要了解AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是java并发包的基础工具类,是实现ReentrantLock、CountDownLatch、Semaphore、FutureTask等类的基础。
Google一下AbstractQueuedSynchronizer,我们可以找到很多关于AQS的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的细节说清楚。
本文将从ReentrantLock的公平锁源码出发,分析下AbstractQueuedSynchronizer这个类是怎么工作的,希望能给大家提供一些简单的帮助。
Chrome 插件推荐
在经历本人金融危机后,终于重新搭建起自己的”帆樯”服务器。不得不说呼吸外面新鲜空气的感觉真是太爽了,赶紧把公司电脑里饥渴的Chrome折腾起来。在这里推荐几个在个人工作中感觉很实用的插件。
Linux parted、siege 工具小记
这一会在折腾debian9系统,尝试磁盘操作时发现就只有个df 命令并没有fdisk、cfdisk等工具。于是找到了parted这一工具(其实在我之前一直用的Ubuntu中有,只是fdisk、cfdisk用的多一点)。而siege 则是一个FTP/HTTP压力测试工具,能够很方便测试自己的web系统。
你可能不知道的Shell
Shell也叫做命令行界面,它是*nix操作系统下用户和计算机的交互界面。Shell这个词是指操作系统中提供访问内核服务的程序。
这篇文章向大家介绍Shell一些非广为人知、但却实用有趣的知识,权当品尝shell主食后的甜点吧。
理解Java内存模型笔记
在并发编程网上看到这个深入理解java内存模型系列文章,文章一个系列图文并茂讲得都很不错,让我了解到了很多关于内存可见性、内存屏蔽指令一些知识。在此结合自己对《深入理解Java虚拟机》的一些理解对文章重点基础知识做个笔记。注:文章基于JSR-133内存模型