Android 线程管理之 CountDownLatch(闭锁)

2023-05-10 19:12:57 浏览数 (1)

好了,废话不多说;

首先什么是CountDownLatch :

代码语言:javascript复制
CountDownLatch,一个线程同步管理类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

其本身带有的主要方法:

代码语言:javascript复制
public CountDownLatch(int count); 
 public void await() throws InterruptedException 
 public void countDown();

首先第一个:

代码语言:javascript复制
public CountDownLatch(int count); 

这个方法的意思是要管理几个线程,并得到一个CountDownLatch实例,其参数 count 的数量就决定着要开启几个线程。

第二个:

代码语言:javascript复制
 public void await() throws InterruptedException

这个方法看名字大家就可以猜的出来,是等待方法, 当执行此方法时, 那么其余线程和都必须等待countDown的数量变0,然后开始执行。

代码语言:javascript复制
public void countDown();

这个方法主要是减去线程数量, 举个栗子, 你在此线程使用了await,那什么时候取消呢?如果取消(释放)则用到了这个方法,这个方法执行一次,那么总数(构造方法中的参数count)就会减去1, 直到构造参数是0时,该管理器结束,不再闭锁其他线程。 latch.countDown(); 建议放在 finally里执行,不然小心造成死锁。

你以为会有示例代码?

不,没有!

再见! 

0 人点赞