多线程&并发篇---第十四篇

系列文章目录


文章目录

  • 系列文章目录
  • 一、什么是AQS?
  • 二、了解Semaphore吗?
  • 三、什么是Callable和Future?


一、什么是AQS?

简单说一下AQS,AQS全称为AbstractQueuedSychronizer,翻译过来应该是抽象队列同步器。
如果说java.util.concurrent的基础是CAS的话,那么AQS就是整个Java并发包的核心了,
ReentrantLock、CountDownLatch、Semaphore等等都用到了它。AQS实际上以双向队列的形式
连接所有的Entry,比方说ReentrantLock,所有等待的线程都被放在一个Entry中并连成双向队
列,前面一个线程使用ReentrantLock好了,则双向队列实际上的第一个Entry开始运行。
AQS定义了对双向队列所有的操作,而只开放了tryLock和tryRelease方法给开发者使用,开发者可
以根据自己的实现重写tryLock和tryRelease方法,以实现自己的并发功能。

二、了解Semaphore吗?

emaphore就是一个信号量,它的作用是限制某段代码块的并发数。Semaphore有一个构造函数&#x

你可能感兴趣的:(多线程)