java - synchronized(new Object()) 的用例

标签 java multithreading synchronization shared-memory

在最近的 answer我建议可以通过在包含我们需要volatile的变量的对象上同步来实现volatile的功能(提问者没有可以访问代码中的变量)。

这让我想到我实际上不需要阻塞包含对象,我只需要实现内存屏障。由于 synchronized 实现了两者 同步 内存屏障,如果我只需要内存屏障(如本例),它实际上会更好吗使用synchronized(new Object()) 来实现我的内存屏障确保锁永远不会被竞争?

最佳答案

如此处解释:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#synchronization synchronized(new Object()) 被认为是空操作,可能会被编译器完全删除。你不会从中得到内存障碍。

关于java - synchronized(new Object()) 的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16711516/

相关文章:

java - 卡夫卡经纪人以随机间隔崩溃

java - Spring Boot 在运行时更改 DataSource 和 JPA 属性

java - 将 key 和 SSL 证书导入 java keystore

ios - CoreData 阻塞 UI

architecture - 多个 CPU 可以同时写入同一个 RAM 位置吗?

java - 使用 Serenity BDD 剧本管理 React DOM

c# - 是否可以将表单控件放在自己的线程上?

java - 异步调用如何获取JNI接口(interface)指针(JNIEnv *)

android 同步 sqlite 与 Parse.com

Java同步-等待来自服务器的数据