标签:: Java并发包#AQS

0

AbstractQueuedSynchronizer中的ConditionObject剖析

AbstractQueuedSynchronizer中的ConditionObject剖析 在多线程环境中, 有时候, 一个线程的执行是需要等待一个条件发生后才能执行的. 在经典的生产者和消费者模式中, 如果缓冲区满后, 生产者是不能向缓冲区投放item的, 它需要等待一个条件: 缓冲区不为满的状态. 同理, 如果缓冲区为空时, 消费者是不能消费item的, 它需要等待一个条件: 缓冲区不为空.

0

AbstractQueuedSynchronizer剖析

AbstractQueuedSynchronizer剖析在介绍AbstractQueuedSynchronizer(下面称AQS)前, 我们先来看看一个不安全的锁, 然后引出构建安全锁需要处理哪些情况. 123456789101112131415161718typedef struct lock_t { int flag;} lock_t;void init(lock_