java - 跨线程传递数据时如何确保 Java 中的内存可见性

标签 java multithreading memory-management shared-memory java-memory-model

我有一个类似于生产者消费者的模式,其中一些线程正在创建数据并定期传递该数据的 block 以供其他线程使用。

牢记 Java 内存模型,如何确保传递给消费者线程的数据具有完全的“可见性”?

我知道 java.util.concurrent 中有像 ConcurrentLinkedQueue 这样专门为此构建的数据结构,但我希望在不使用这些数据的情况下尽可能低级别地执行此操作,并对幕后发生的情况具有完全的透明度确保内存可见部分。

最佳答案

如果您想要“低级别”,请查看 volatile 同步

关于java - 跨线程传递数据时如何确保 Java 中的内存可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842825/

相关文章:

java - 从键盘(控制台)读取字符,而无需按Enter键

performance - 销毁 Angular2 应用程序

Java:在我自己的 API 中有哪些事件通知选项?

objective-c - [ self 自动释放] 可以接受吗?

c++ - malloc 中数字对象的用法

java - 依赖注入(inject) - Eclipse e4 应用程序到 eclipse 插件

java - 从 JSObject 中获取 JavaObject

java - 我想使用 jbutton 显示从 mysql 到 jtextfield 的特殊字符。我的代码仅适用于数字

c# - 是否有可能知道哪个线程先完成?

objective-c - 同时以编程方式缩小 NSWindows 数组的规模?