volatile 关键字主要是让变量在多个线程之间共享, 其它线程改了当前变量,当前线程可以马上感知,以前是通过给变量加锁实现,但是变量加锁会导致等待,不理想
变量如果被 volatile 修饰,则当变量改变时强制线程执行引擎去主内存里去读取, 如果不加 volatile ,每个线程之间使用的是变量的副本, 主要是由于JDK1.5做出的优化,避免每次取变量都去主内存取,消耗性能
volatile 关键字主要是让变量在多个线程之间共享, 其它线程改了当前变量,当前线程可以马上感知,以前是通过给变量加锁实现,但是变量加锁会导致等待,不理想
变量如果被 volatile 修饰,则当变量改变时强制线程执行引擎去主内存里去读取, 如果不加 volatile ,每个线程之间使用的是变量的副本, 主要是由于JDK1.5做出的优化,避免每次取变量都去主内存取,消耗性能