Category archives: 转载

一行一行源码分析清楚AQS[转]

在分析java并发包java.util.concurrent源码的时候,少不了需要了解AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是java并发包的基础工具类,是实现ReentrantLock、CountDownLatch、Semaphore、FutureTask等类的基础。

Google一下AbstractQueuedSynchronizer,我们可以找到很多关于AQS的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的细节说清楚。

本文将从ReentrantLock的公平锁源码出发,分析下AbstractQueuedSynchronizer这个类是怎么工作的,希望能给大家提供一些简单的帮助。 Read more

你可能不知道的Shell

Shell也叫做命令行界面,它是*nix操作系统下用户和计算机的交互界面。Shell这个词是指操作系统中提供访问内核服务的程序。

这篇文章向大家介绍Shell一些非广为人知、但却实用有趣的知识,权当品尝shell主食后的甜点吧。

Read more

MySQL 加锁处理

分享一篇详细、较全面的MySQL InnoDB加锁介绍,虽然年代略旧不过其中基本锁的机制还是没变的。

MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。

注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。

Read more

KMP、BM算法(上)

对于吃力的KMP算法,遇到一篇详细的讲解文章和大家分享下:

一:背景

Read more

Tomcat熵池阻塞变慢详解(tomcat启动加速)

重启在自己的ECS上tomcat时,发现启动特别的慢(简直无法忍受)。

查看日志却没发现有报错,但是也发现了一个很亮眼的数字(关于SercureRandom实例创建阻塞时间): Read more