Volatile 可以保证什么特性?有什么作用?
可以保证可见性,有序性,禁止指令重排序。但是不能保证原子性。线程上下文切换的时候,还是有可能出现线程安全问题。
cpu 都是把数据从内存拉取到自己的缓存中进行运算,然后在写回内存的。每个cpu 核心都有自己独立的缓存。所以就造成了,多核并发的场景下,数据可能被 A 线程修改了,但是其他线程不知道,cpu 核心还在使用缓存中旧的数据。
Volatile 就是来解决这个缓存一致性问题的。
有序性,就是所谓的禁止指令重排序。
Volatile 可以保证什么特性?有什么作用?
可以保证可见性,有序性,禁止指令重排序。但是不能保证原子性。线程上下文切换的时候,还是有可能出现线程安全问题。
cpu 都是把数据从内存拉取到自己的缓存中进行运算,然后在写回内存的。每个cpu 核心都有自己独立的缓存。所以就造成了,多核并发的场景下,数据可能被 A 线程修改了,但是其他线程不知道,cpu 核心还在使用缓存中旧的数据。
Volatile 就是来解决这个缓存一致性问题的。
有序性,就是所谓的禁止指令重排序。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1115650.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!