gpt4 book ai didi

java - Java 并发中如何真正访问方法

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:14 26 4
gpt4 key购买 nike

我想深入了解 Java 的工作原理。所有教程的级别都太高了,所以我有几个问题:

  1. 给定这段代码:

    class Example {
    public void foo() {
    int number = getRandomNumber();
    System.out.println(number);
    }
    }

    假设在上面的例子中,foo() 方法可以被多个线程访问。每个线程是否都有自己正确的 number 变量值,或者第二个线程是否可以修改第一个线程的值(因此它们都打印相同的值)?

  2. 如果 int number 是 final 会发生什么?

我想知道的主要事情是,当我进行一些初始化(连接等)时,我想确保线程不会相互干扰。

最佳答案

Has every thread its own and correct value of number variable or is it possible for the second thread to modify the value of the first thread (so both of them print the same value)?

将其视为 foo每个方法调用 都有自己的 number 变量会更清楚 - 它是方法。因此,如果这是某种递归方法,您可能会同时得到多个 number 变量甚至在单个线程中,因为它们是方法。

没有其他线程可以更改局部变量的值,您也不能更改任何其他代码中一次调用的值。它是该调用状态的一部分。

What would happen if the int number was final?

这基本上可以防止您在初始化后更改变量的值。

关于java - Java 并发中如何真正访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16034352/

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