Android CountDownLatch的用法
时间: 2023-11-03 20:01:48 浏览: 163
CountDownLatch的使用
在Android中,CountDownLatch可以用于线程的同步。它允许一个或多个线程等待其他线程完成操作后再继续执行。CountDownLatch维护一个计数器,通过调用countDown()方法来减少计数器的值,线程可以通过await()方法来等待计数器的值变为0。
在上述代码中,mLatchTest是一个CountDownLatch对象,通过调用mLatchTest.countDown()方法来减少计数器的值,在UI线程中对mTestFlag进行更新后,该值变为true,并且通过调用mLatchTest.await()方法来等待计数器的值变为0。
CountDownLatch与Thread.join()方法类似,但是CountDownLatch提供了更灵活的API。CountDownLatch可以手动控制调用countDown()方法的次数,也可以在一个线程中多次调用countDown()方法。而Thread.join()方法是不停地检查被join的线程是否存活,如果存活则让当前线程永远等待。
另外,CountDownLatch和CyclicBarrier都可以实现线程之间的等待,但侧重点不同。CountDownLatch一般用于一个或多个线程等待其他线程执行完任务后才执行,而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行。此外,CountDownLatch是减计数,计数减为0后不能重用,而CyclicBarrier是加计数,可以重复使用。
阅读全文