gpt4 book ai didi

Java 并发可见性

转载 作者:行者123 更新时间:2023-12-01 07:22:38 26 4
gpt4 key购买 nike

我有一个关于 java 中可见性的问题。仅当我们至少有两个线程且运行在至少 2 个 cpu 核心上时,可见性才会出现。是这样吗?每个核心都可以在其寄存器和缓存内存中缓存变量,因此可能会出现可见性问题。但是,如果我们有 n 个线程,并且它们都运行在一个 cpu 核心上(当然,我们不能确定它们只运行在 1 个核心上,但假设可以实现这一点),那么就没有办法了有内存可见性吗?或者这是不对的?提前致谢。

最佳答案

即使在运行多个线程的 1 个核心上,您仍然可能会遇到所谓的“可见性”问题,因为已将内存中的值加载到寄存器中的线程会将这个值保存到该线程的堆栈中,并且不会看到如果线程关闭然后再次打开,则更新除非变量/内存被声明为 volatile

关于Java 并发可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31709637/

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