转载

深入Java多线程

上篇文章已经对多线程有个初步的认识了,这次我们来看看Java的Lock锁,主要有以下知识点:

AQS

在学习Lock锁之前,我们先来看看什么是AQS?

AQS

  • AQS其实就是一个可以给我们实现锁的框架,juc包中很多可阻塞的类比如 ReentrantLock、 ReadWriteLock都是基于AQS构建的。
  • 内部实现的关键是: 先进先出的队列、state状态
  • 在AQS中实现了对等待队列的默认实现,子类只要重写部分的代码即可实现(大量用到了模板代码)
  • AQS同时提供了 互斥模式(exclusive)和共享模式(shared) 两种不同的同步逻辑。一般情况下,子类只需要根据需求实现其中一种模式,当然也有同时实现两种模式的同步类,如 ReadWriteLock

深入Java多线程

参考

Java3y多线程

Java技术之AQS详解
原文  https://segmentfault.com/a/1190000020806586
正文到此结束
Loading...