volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见。
volatile 修饰过的变量, 不可以被JVM重排序,比锁的效率高。
相较于 synchronized 是一种较为轻量级的同步策略。(syncronized 可以实现线程互斥)
注意:
特点一:volatile 不具备线程 “互斥性”
特点二:不能保证变量的 “原子性”
volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见。
volatile 修饰过的变量, 不可以被JVM重排序,比锁的效率高。
相较于 synchronized 是一种较为轻量级的同步策略。(syncronized 可以实现线程互斥)
注意:
特点一:volatile 不具备线程 “互斥性”
特点二:不能保证变量的 “原子性”