我有一个类似于生产者消费者的模式,其中一些线程正在创建数据并定期传递该数据的 block 以供其他线程使用。
牢记 Java 内存模型,如何确保传递给消费者线程的数据具有完全的“可见性”?
我知道 java.util.concurrent 中有像 ConcurrentLinkedQueue 这样专门为此构建的数据结构,但我希望在不使用这些数据的情况下尽可能低级别地执行此操作,并对幕后发生的情况具有完全的透明度确保内存可见部分。
最佳答案
如果您想要“低级别”,请查看 volatile
和同步
。
关于java - 跨线程传递数据时如何确保 Java 中的内存可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842825/