1. 锁的劣势:(包括syncronized实现的内置锁、ReentrantLock)
(1)开销大:线程的挂起与恢复存在很大开销,并且存在着较长时间的中断。
2. volatile变量:
(1)优势:更轻量级的同步机制,在使用这些变量时不会发生上下文切换或线程调度,提供了内存可见性保证
(2)劣势:不能用于构建原子的复合操作,因此当一个变量依赖于其他的变量时,或者当变量的新值依赖于旧值时,就不能使用volatile变量。例如计数器或互斥体。
3. 原子变量类:
(1)优势:原子变量比锁的粒度更细,量级更轻