java - volatile ,在 x86 处理器上没有用处

标签 java concurrency synchronization volatile

我在某处读到,x86 处理器具有缓存一致性,并且可以在每次写入时跨多个内核同步字段的值。

如果我们计划仅在 x86 处理器上运行,这是否意味着我们可以在不使用 java 中的“ volatile ”关键字的情况下进行编码?

更新:

好吧,假设我们忽略指令重新排序的问题,我们是否可以假设 x86 处理器上不存在跨内核不可见的非 volatile 字段的分配问题?

最佳答案

否—— volatile 关键字不仅仅具有缓存一致性的含义;它还对运行时可以做什么和不能做什么设置限制,例如延迟构造函数调用。

关于java - volatile ,在 x86 处理器上没有用处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573782/

相关文章:

java - 密码加密并存入数据库

java - 创建一个具有可执行类文件的 uberjar

javascript - Elm 中的并发

go - 并发协程的互斥

algorithm - 与中央服务器同步联系人列表

java - Java 中的查询字符串操作

java - 是否有支持 PL/SQL 和 Java API 的嵌入式数据库?

ios - 为什么 DISPATCH_QUEUE_CONCURRENT 创建的两个并发队列不能同时运行?

database - 将一个或多个数据库与主数据库同步 - 外键

c# - 使用 MS Sync Framework 2.0,如何最好地处理相关表?