
- 安全性问题。永远不发生糟糕的事情。
- 活跃性问题。某件正确的事情最终会发生。比如死锁,饥饿,活锁。
- 性能问题。在活跃性问题的基础上关注正确的事情尽快发生。例如服务时间过长,响应不灵敏,资源消耗过高等。
安全性问题
常用的注解:@ThreadSafe,@NotThreadSafe,@Immutable
- 原子性。避免竞态条件,以原子的方式执行,AtomicLong。
- 加锁机制
- 可见性
- 发布与逸出
- 线程封闭
- 栈封闭
- 不变性
活跃性问题
性能问题
AQS
AbstraceQueuedSynchronizer是一个用于构建锁和同步器的框架,许多同步器都可以通过AQS很容易并且高效地构造出来。
它维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程争用资源被阻塞时会进入此队列)。




近期评论