gpt4 book ai didi

java - OCPJP考试中的多线程

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:22 26 4
gpt4 key购买 nike

虽然我找到了答案,但我遇到了一个我很难理解的问题。请查看此答案并向我提供解释。

public class TestSeven extends Thread {
private static int x;
public synchronized void doThings() {
int current = x;
current++;
x = current;
}
public void run() {
doThings();
}
}

问题和给出的答案是...哪个说法是正确的?

一个。编译失败。

B.运行时抛出异常。

C.同步 run() 方法将使类线程安全。

D.变量“x”中的数据不受并发访问问题的影响。

E. 将 doThings() 方法声明为静态方法将使该类成为线程安全的。

F.将 doThings() 中的语句包装在 synchronized(new Object()) { } block 中将使该类线程安全。

粗体为答案。提前感谢您的回复!!

最佳答案

如果你有一个像这样的同步实例方法,它会在实例上同步,即每个实例都可以自己访问该方法。但是 x 是静态的,所以 TestSeven 的任何实例都可以并发访问它。如果 doThings() 是静态的,它会在类上同步,因此在给定时间只有一个实例可以访问同步代码。

关于java - OCPJP考试中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36395956/

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