gpt4 book ai didi

java - 关于简单 Java 程序的语义

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:26:33 25 4
gpt4 key购买 nike

考虑一个 Java 类 A,其中 fA 的一个 Integer 字段,并且 uA 类中方法 foo() 的局部 Integer 变量。

class A{

int f;

void foo(){
int u;
...
f = 7;
u = f;
...
}
....
}

这样说是错误的吗:

       variable ‘u’ MUST be 7 at the end of “f=7; u =f;”?

我的观点是“f”可能会被其他线程更改,所以上面的说法一般来说应该是错误的。我说得对吗?

感谢您的想法。

最佳答案

是的,执行可以在 f=7、u=f 之间中断。您将此称为关键区域,可以使用锁、互斥锁或信号量来保护它。通过这种方式,您可以确保没有其他线程(甚至硬件中断,在 Java 中不行;))更改您的数据而不一定需要它。

关于java - 关于简单 Java 程序的语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23386643/

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