gpt4 book ai didi

Java 等待线程完成

转载 作者:IT老高 更新时间:2023-10-28 20:28:36 25 4
gpt4 key购买 nike

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

更多信息:

我有一个从 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/4691533/

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