gpt4 book ai didi

Java内存模型问题

转载 作者:行者123 更新时间:2023-12-05 00:33:30 25 4
gpt4 key购买 nike

我知道也许这个问题的答案是显而易见的。但如果有人能给我一个明确的答案,那将会很有帮助。

问题是:java NIO包是否可以提供一些内存一致性保证?

场景是:

Thread A                                                    Thread B
[modify Object X]
[Send a request A over TCP by NIO]
[receive response for request A over TCP by NIO]
[read Object X]

如果应用程序在线程 A 和线程 B 之间没有任何同步/安全引用请求,线程 A 所做的修改是否对线程 B 可见。

非常感谢您的帮助。

最佳答案

我的猜测是 TCP 请求不会对线程同步做出任何正式保证。

也就是说,我认为您提出的问题有一个简单的解决方案:可以合理地假设 TCP 请求至少与获取锁一样昂贵(性能方面)。因此,您可以将发送/接收包含在同步块(synchronized block)中,而不会显着降低性能。这将确保线程 B 将在修改后看到对象 X。

关于Java内存模型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/938060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com