gpt4 book ai didi

java - 等待线程完成执行

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:13 27 4
gpt4 key购买 nike

这里是 Java 新手。我正在使用一个第三方库,它给我一个函数,比如 F(),它的输出决定了我的逻辑。所以我需要它的结果才能在我的代码中进一步处理。

问题是 F() 执行一些 I/O,因此产生一个线程来执行该功能。他们给了我一些回调来实现,这些回调被调用以从线程返回状态/值。这很好,除了函数 F() 立即返回并且我的代码的其余部分继续运行。我不希望这样,因为我必须根据 F() 的结果分配一些对象,所以我真的想等待 F() 真正完成。

这应该是人们经常遇到的问题。处理这个问题的正确方法是什么?是我的设计有问题还是第三方库有问题?还是我对图书馆不是很了解?

为了完整起见,我正在开发一个 android 应用程序,库是 facebook sdk。该函数为单点登录函数authorize()。虽然这是一个足够普遍的问题,但我认为最好在 Java 论坛中解决。

感谢您的帮助。-P

最佳答案

我不熟悉 facebook SDK,但是像这样处理异步操作的正常机制是 Callable<> 或 Future<> 接口(interface):您将创建一个服务执行器,传入 Callable<> 或 Future <>,然后继续您的代码。

可以从 Future<> javadoc 中找到示例:http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html

另请参阅 StackOverflow 问题/答案 How to return object from Callable()

关于java - 等待线程完成执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779282/

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