java多线程编程中一个很重要的概念是可见性 和互斥访问,互斥访问往往通过加锁来保证,但加锁往往会导致性能瓶颈。
java包中提供了轻量级的原子变量,AtomicLong等,那他们和volatile有什么区别呢。
基本没啥区别,volatile修饰的变量,可确保任何一个线程对该变量的修改,其他线程立刻可见。AtomicLong等原子变量类型
提供了cas相关实用的方法,其内部实现也是使用了volatie进行修饰。
java多线程编程中一个很重要的概念是可见性 和互斥访问,互斥访问往往通过加锁来保证,但加锁往往会导致性能瓶颈。
java包中提供了轻量级的原子变量,AtomicLong等,那他们和volatile有什么区别呢。
基本没啥区别,volatile修饰的变量,可确保任何一个线程对该变量的修改,其他线程立刻可见。AtomicLong等原子变量类型
提供了cas相关实用的方法,其内部实现也是使用了volatie进行修饰。