java编程思想中有这么一段:
请教大牛,能否详细,或者举例说明一下?不是很理解呀
这个关键字主要是解决变量在不同线程之间共享问题的,就是不同的线程使用同一个变量的值,如果一个线程改了,另一个线程能不能立即拿到最新的值。
兄弟百度资料很多,自己搜搜看吧。
volatile 只能保证可见性。无法保障原子性。值被其他域的值限制了,破坏了原子性。就无法保持结果一致了。
多任务环境下,各任务间共享的变量,都应该加volatile 修饰符来修饰!
楼上有人说的正确.
volatile只是保证这个数值是不被优化而每次都从内存中读取,
但是如果其中一个线程修改了这个值没有来得及放回内存,
其他线程去读就读到了无效的脏数据,
volatile并不能保证原子性.
所以这段话的意思就是这么解释和理解的.