gpt4 book ai didi

java - 如何从线程返回值(java)

转载 作者:行者123 更新时间:2023-12-01 21:57:21 25 4
gpt4 key购买 nike

我做了一个像下面这样的线程:

public class MyThread implements Runnable {
private int temp;

public MyThread(int temp){
this.temp=temp;
}

@Override
public void run() {
temp+=10;
return;
}

public int getTemp() {
return temp;
}
}

但是当我尝试通过 getTemp 使用 temp 时,我得到 0

class Main {
MyThread foo = new MyThread(10);
Thread a = new Thread(foo);
a.start();
int aa = foo.getTemp();
System.out.println(aa);
}

我只是想将我在线程中所做的计算存储在一些变量中以供以后使用。

最佳答案

或者直接添加

...
a.start();
a.join(); // Add this
...

在获取结果之前等待线程完成。

您的问题是您试图在计算结果之前获取结果。您应该等待线程完成才能获得结果。这个答案也许不是最好的,但却是最简单的。由于其他人已经使用了 Executors 类,我不想重复他们的答案。不过,在转向执行器之前,我会先熟悉 Thread 及其方法,以帮助您更好地理解线程,因为从您的帖子来看,您可能是该领域的新手。

感谢l4mpi (on the meta site)指出缺乏解释。

关于java - 如何从线程返回值(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58733459/

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