酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

在android开发中,countdownlatch 线程同步

CountDownLatch是Android中的一种线程同步工具,它允许一个或多个线程等待其他线程完成操作后才继续执行。 CountDownLatch的工作原理是,当一个线程调用CountDownLatch的await方法时,它会阻塞,直到其他线程调用CountDownLatch的countDown方法,使得await方法的计数器减1。当计数器减为0时,所有等待的线程都会被唤醒。 以下是一个简单的例子,展示了如何使用CountDownLatch进行线程同步: ```java import java.util.concurrent.CountDownLatch; public class MainActivity extends AppCompatActivity { private CountDownLatch latch = new CountDownLatch(1); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread(new Runnable() { @Override public void run() { try { // 这里是耗时操作 Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } finally { // 当这个线程完成操作后,调用countDown方法,使得latch的计数器减1 latch.countDown(); } } }).start(); // 在主线程中,调用await方法,使得主线程阻塞,直到其他线程调用countDown方法 try { latch.await(); } catch (InterruptedException e) { e.printStackTrace(); } } } ``` 在这个例子中,我们创建了一个CountDownLatch对象latch,并设置了计数器为1。然后,我们创建了一个新的线程,这个线程会执行一个耗时操作。当这个线程完成操作后,它会调用latch的countDown方法,使得latch的计数器减1。在主线程中,我们调用latch的await方法,使得主线程阻塞,直到其他线程调用countDown方法。当计数器减为0时,主线程会被唤醒,继续执行后续的操作。 [2023-11-08 00:27:57 | AI问答 | 426点数解答]

相关提问