如何从 UI 在 android 上运行两个线程,其中第二个线程直到第一个完成才运行

How do I run two threads on android from the UI where the second doesn't run till first complete

提问人:Epiphanisation 提问时间:4/30/2014 更新时间:4/30/2014 访问量:282

问:

我正在尝试设计一个 android 应用程序,但在结构上苦苦挣扎。

基本上,从 UI 操作中,我需要运行一个线程来做一些繁重的数学工作,并且该线程将运行 UI 中的变量设置的设定时间,每次运行时都不是恒定的。

在此线程完成并生成结果后,我认为它将返回到 ui 线程,然后我需要再次启动另一个线程进行另一个繁重的数学工作,时间与第一个线程不同,并生成另一个数字,然后返回 UI 线程。

所以 具有两个变量 Time A 和 Time B 的 UI 线程 UI 线程“开始”上的按钮

线程 1 开始 做数学 直到时间 A 过去 将数学结果传回 UI

然后,UI 启动线程 2,但仅在线程 1 完成时启动

线程 2 已启动 做数学 直到时间B过去 将数学结果传回 UI

UI 显示第一个线程和第二个线程的结果

希望这是有道理的

java 多线程 android-asynctask 句柄

评论

2赞 ajb 4/30/2014
你熟悉 Object 类的 和 方法吗?waitnotify
0赞 Epiphanisation 4/30/2014
我会仔细阅读它们,我想我没有同时运行线程 1 和线程 2,而是在线程 2 中等待,直到它收到来自线程 1 的通知,因为这似乎浪费资源。我可以在UI线程中等待一下,不会让它挂起吗?
0赞 ajb 4/30/2014
wait可能会阻塞 UI 线程,因此将其放在那里可能不明智。可能的替代方法:让 UI 线程立即启动线程 2,但线程 2 开始等待某个同步对象,可能在它分配任何大对象之前。我只是抛出一些可能性,我不确定哪些适合您的应用程序。

答: 暂无答案