gpt4 book ai didi

java - 在 Callable 中等待回调

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

我想做这样的事情:

public class MyCallable implements Callable<Boolean>, MyObserver
{
Boolean mSuccess = false;

@Override
public Boolean call() throws Exception
{
// ... Wait here until myCallback is called ...

return mSuccess;
}

@Override
public void myCallback()
{
if(something) mSuccess = true;
}
}

所以我可以像这样使用它:

MyCallable callable = new MyCallable();

FutureTask<Boolean> futureTask = new FutureTask<Boolean>(callable);

ExecutorService executor = Executors.newFixedThreadPool(1);
executor.execute(futureTask);

Boolean successfull = futureTask.get();

这个“等待回调被调用”代码是什么样的?我想我可以创建一个名为“Boolean mCallbackCalled = false”的成员和 while(!mCallbackCalled),但这看起来很老套...

最佳答案

您根本不应该使用执行程序。

相反,创建一个 CountDownLatch计数为 1 时,在回调中使用 countDown() ,然后在调用代码中使用 await()

关于java - 在 Callable 中等待回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503275/

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