AQS(AbstractQueuedSynchronizer)

AQS是一个用于构建锁或者其他相关同步器的基础框架。 AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的线程加入到队列中。 AQS使用一个int成员变量state来表示同步状态,通过内置的FIFO队列来完成获取资源线程的排队工作。AQS使用CAS 原子操作对该同步状态的值进行修改。

相关文章

  • 目前线上solr每个replica索引2G左右,每次重新启动需要10分钟,无法忍受。 观察solr的日志,发现打印红色部分前后用去了5分钟,前一条log“registering core”很具迷惑性,以为是注册core时耗费的时间,后来发现这个注册core和初始化SolrCore时的创建searcher不是同一个线程。真正耗费时间的时创建新的searcher的时候。 [2014.08.13 16:

相关问答