gpt4 book ai didi

java - 并行使用相同方法的线程

转载 作者:行者123 更新时间:2023-12-02 07:17:08 25 4
gpt4 key购买 nike

是否有可能出现这种行为:

一个线程 (T1) 调用某个方法,例如 compute(10);

当该函数仍在执行时,另一个线程再次调用它(使用其他参数),例如,compute(20);

如果方法

public int compute(int i) {
return i+20;
}

每个线程都会得到正确的结果吗?

我希望 T1 获得 20,T2 获得 40

最佳答案

由于您仅使用局部变量(方法参数是局部的),是的,它是安全的。

public class Computer {
public int compute(int i) {
return i+20;
}
}

如果您要使用实例变量静态变量,那么您应该在每次读取同步并且write 到变量。

public class Computer {
private int increment;

public synchronized int compute(int i) {
return i+increment; // <-- reads increment
}

private synchronized void setIncrement(int increment) {
this.increment = increment; // <-- writes increment
}
}

关于java - 并行使用相同方法的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14803555/

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