Java 等待线程完成
2022-08-31 11:47:49
我有一个线程正在下载数据,我想等到下载完成后再加载数据。有没有一种标准的方法可以做到这一点?
更多信息:
我有一个从URL(序列化的POJO)获取数据的Download类。下载是可运行和可观察的。它跟踪下载的字节数和下载大小。我有一个进度条,向用户显示进度。GUI 观察“下载”以更新进度条。
下载POJO后,我想获取它并转到下一步。每个步骤都必须等待上一步完成。问题是我想不出一种方法来暂停我的应用程序以等待下载线程。下载完成后,我想调用哪个将数据作为对象返回。然后,我可以投射它并继续下一次下载。download.getObject()
我有一个帮助器类,它管理要下载的URL,并对下载进行所有调用。此调用将调用 getObject 并执行转换。桂民国调用 .帮助程序启动线程运行,我希望它在完成时“知道”,以便它可以返回强制转换的对象。helper.getUser()
任何建议/示例?我正处于这个设计的开始阶段,所以我愿意改变它。
更新:
我遵循 http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html#get 并使用模态来阻止,直到线程完成。代码非常混乱,我不喜欢这种方法。我会继续尝试找到一种“干净”的方式来处理下载过程的工作流程。