gpt4 book ai didi

java - 从线程返回值

转载 作者:IT老高 更新时间:2023-10-28 11:41:17 26 4
gpt4 key购买 nike

我有一个带有 HandlerThread 的方法。 Thread 内部的值发生了变化,我想将其返回给 test() 方法。有没有办法做到这一点?

public void test()
{
Thread uiThread = new HandlerThread("UIHandler"){
public synchronized void run(){
int value;
value = 2; //To be returned to test()
}
};
uiThread.start();
}

最佳答案

通常你会这样做

 public class Foo implements Runnable {
private volatile int value;

@Override
public void run() {
value = 2;
}

public int getValue() {
return value;
}
}

然后您可以创建线程并检索值(假设值已设置)

Foo foo = new Foo();
Thread thread = new Thread(foo);
thread.start();
thread.join();
int value = foo.getValue();

tl;dr 线程不能返回值(至少在没有回调机制的情况下不能)。您应该像普通类一样引用线程并请求值。

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

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