volatile关键字的使用场景

原理: volatile使用内存屏障保证所有线程的更改都能立刻被感知到,直接从主内存中读取

使用场景: 不依赖变量本身的值,如下图,index依赖本身的值就不能保证线程安全。复合操作也是如此,比如++i,这种会依赖变量本身的值。volatile变量不能用作计数器之类的功能。

volatile关键字的使用场景