gpt4 book ai didi

Java 等待线程完成

转载 作者:行者123 更新时间:2023-12-02 05:56:36 24 4
gpt4 key购买 nike

我有一个线程正在下载数据,我想等到下载完成后再加载数据。有这样做的标准方法吗?

更多信息:

我有一个 Download 类,它从 URL(序列化 POJO)获取数据。下载是可运行且可观察的。它跟踪下载的字节数和下载大小。我有一个进度条,向用户显示进度。 GUI 观察“下载”以更新进度条。

下载 POJO 后,我想获取它并进入下一步。每一步都必须等待前一步完成。问题是我想不出一种方法来暂停我的应用程序以等待下载线程。下载完成后,我想调用 download.getObject() ,它将以对象的形式返回数据。然后我可以转换它并继续下一次下载。

我有一个帮助程序类,用于管理下载 URL 并进行所有对下载的调用。此调用将调用 getObject 并进行转换。 Gui 调用 helper.getUser()。 helper 启动线程运行,我希望它“知道”它何时完成,以便它可以返回转换的对象。

有什么建议/例子吗?我正处于这个设计的开始阶段,所以我愿意改变它。

更新:

我关注了http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html#get并使用模态来阻塞,直到线程完成。代码非常困惑,我不喜欢这种方法。我将继续尝试找到一种“干净”的方式来处理下载过程的工作流程。

最佳答案

Thread 有一个方法可以为您做到这一点 join这将阻塞直到线程完成执行。

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

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