volatile的作用

1.编译器具有优化机制,使用while语句的时候,括号中的条件会被放在寄存器或者缓存中,不会每次从内存中读取。

2.如果是单线程编程,那么是没有问题的。但是当涉及到多线程的时候,括号中有可能会发生改变,而编译器无法感知内存中发生的变化。

3. volatile关键字,使编译器每次都从内存中读取。保证了线程安全。

你可能感兴趣的:(java)