gpt4 book ai didi

android - 在执行一段代码之前确保两个线程都执行完

转载 作者:行者123 更新时间:2023-11-29 22:07:19 24 4
gpt4 key购买 nike

我需要在满足两个条件时执行一段代码。

  1. 使用后台线程从数据库中成功查询了主题文本。
  2. 已使用主线程成功检索 View 的维度。View 的 Subject 文本和维度都存储为 Activity 的成员变量。

对于 1),我只是在 Activity 的 onCreate() 中启动一个 AsyncTask,在 doInBackground 中查询 DB 以获取主题文本并将其存储在 Activity 的成员变量中。

对于 2),我向 UI 线程发布了一个 Runnable,在 run() 中,我查询 View 的维度并将其存储在 Activity 的成员变量中。也在 onCreate() 中完成。

无法保证哪一个(1 或 2)会先完成。

因此我的问题是,等待 1 和 2 完成的推荐模式是什么在执行一段代码之前?

最佳答案

我想你可以使用 CountDownLatch

旨在解决此类问题。

首先你需要在代码中的某处创建一个锁存器,在 1) 和 2) 之前的某处

CountDownLatch latch = new CountDownLatch(2); // wait for 2 threads;

在你的每个 Action 中,当它完成时,在 latch 实例上调用一个 countDown

latch.countDown();

在某些情况下,您的两个线程都必须完成,在 latch 实例上调用 await

latch.await(); // Will block. Will resume after both thread are completed

关于android - 在执行一段代码之前确保两个线程都执行完,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512752/

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