Java并发编程之CountDownLatch

  • 时间:
  • 浏览:0
  • 来源:大发彩神app—大发彩神8苹果版

你這個 情况汇报下,join是没方式实现你這個 场景的,而CountDownLatch却可不不需要 ,一点它持有有兩个计数器,假如有一天计数器为0,这麼主tcp连接就可不不需要 开始英文英文了阻塞往下执行。相关代码如下:

一点使用普通的tcp连接阻塞方式,帮我一点人 很容易就会想到使用join的方式来做。当在当前tcp连接中调用某个tcp连接 thread 的 join() 方式时,当前tcp连接就会阻塞,直到thread 执行完成,当前tcp连接才可不不需要 继续往下执行。

运行后边的测试用例,可不不需要 就看满足一点人 条件的输出:

一点使用你這個 方式编码实现一句话,代码如下:

除此之外,一点人 还可不不需要 使用CountDownLatch来实现后边的效果,说到这就不得不说下CountDownLatch的有兩个实现原理。

说到这,给一点人 举有兩个最典型的例子:假设第两根流水线上有有兩个工作者:worker0,worker1,worker2。有有兩个任务的完成不需要 一点人 三者合作者者完成,worker2可不不需要 开始英文英文了了你這個 任务的前提是worker0和worker1完成了一点人 的工作,而worker0和worker1是可不不需要 并行一点人 每人个 的工作的。

一点一点人 加带有兩个测试方式:

這個 ,对于文章开头的实例,要实现同样的效果,一点人 不需要 做以下的修改。

CountDownLatch类是处于java.util.concurrent包下的有兩个并发工具类,是通过有兩个计数器来实现的,计数器的初始值为tcp连接的数量。

试想以下,有下面四种 应用场景:假设worker的工作可不不需要 分为有兩个阶段,work2 只不需要 等待歌曲work0和work1完成一点人 每人个 工作的第有兩个阶段以前 就可不不需要 开始英文英文了了每人个 的工作了,而不需要 场景1中的不需要 等待歌曲work0和work1把一点人 的工作完全完成以前 不需要 开始英文英文了了。

一点运行后边的代码,一点人 可不不需要 发现就可不不需要 满足后边的结果。

测试方式:

一点,一点人 编写有兩个测试用例:

与CountDownLatch的第一次交互是主tcp连接等待歌曲一点tcp连接,主tcp连接不需要 在启动一点tcp连接后立即调用CountDownLatch.await()方式。以前主tcp连接的操作就会在你這個 方式上阻塞,直到一点tcp连接完成每人个 的任务。

每当有兩个tcp连接完成了每人个 的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的tcp连接一点完成了任务,一点在闭锁上等待歌曲的tcp连接就可不不需要 恢复执行任务。也本来我说,构造器中的计数值(count)实际上本来我闭锁不需要 等待歌曲的tcp连接数量,你這個 值非要被设置一次,一点CountDownLatch这麼提供任何机制去重新设置你這個 计数值。当你這個 CountDownLatch数量归0后,一点的tcp连接采用执行的一点。

CountDownLatch(闭锁)是有兩个很有用的工具类,利用它一点人 可不不需要 拦截有兩个或多个tcp连接使其在某个条件性性心智心智早熟 图片 的句子图片 后再执行。