首页 > 其他分享 >countDownLatch和Semaphore

countDownLatch和Semaphore

时间:2022-10-21 19:45:14浏览次数:67  
标签:调用 Semaphore 阻塞 线程 countDownLatch 方法

 

countDOwnLatch:当线程1调用await方法那么就会阻塞,线程2,线程3,线程4分别调用countDown方法,当线程4调用countDown方法那么阻塞的队列不管有多少个都会依此唤醒,并不会像AQS中的当一把锁释放时只会唤醒第一个线程所对应的节点,不论公平锁还是非公平锁,例如Reetrantlock就是基于AQS

Semaphore:生成3个权限,相当于生成了三把锁,线程1,线程2,线程3都调用了acquire方法,拿到了锁并运行,但是此时锁已用完,当线程4调用时,则会阻塞,知道某一个线程调用release方法释放了锁,线程4才可以拿到锁运行

 

标签:调用,Semaphore,阻塞,线程,countDownLatch,方法
From: https://www.cnblogs.com/dujl/p/16814591.html

相关文章

  • CountDownLatch
    //批量修改if(CollectionUtils.isNotEmpty(updateKsxxList)){intoneBatch=MagicNumber.ONE_HUNDRED;inttimes=updateKsxxLis......
  • 第二季:6CountDownLatch/CyclicBarrier/Semaphore使用过吗?【Java面试题】
    第二季:6CountDownLatch/CyclicBarrier/Semaphore使用过吗?【Java面试题】​​前言​​​​推荐​​​​6CountDownLatch/CyclicBarrier/Semaphore使用过吗?​​​​说明​​......
  • 操作系统导论习题解答(31. Semaphores)
    Semaphores带着问题学习:如何使用信号量(semaphores)?1.Semaphores:ADefinitionsemaphore是一个具有整数值的对象,可以使用两个例程来对其进行操作。POSIX中两个例程为se......
  • 信号量Semaphore
    1.应用场景对于多个线程来说,想要设计争抢有限的资源,可以用信号量来解决2.代码publicstaticvoidmain(String[]args){ExecutorServiceexecutorServic......
  • CountDownLatch-倒计时锁
    原理适合总分任务,这个锁主要适用情景,要求某些操作全部执行完成才能继续执行后面操作,这时候就可以适用cdl来计数,每次执行完一个操作就减一,计数为0后表示全部线程执行完毕。......
  • 线程间同步和通信,event semaphore mailbox
    线程间同步和通信,event semaphore mailbox1.概述2.事件event3.wait_order()4.旗语(semaphore)5.semaphore::get();6.semaphore::try_get()7.信箱mailbox......
  • CountDownLatch在多线程统计另一个线程的动向
    CountDownLatch在CountDownLatch类里面有两个方法一个是await()字面意思是等待的一次,他和sleep()方法的区别就是sellp()会自己醒过来,而await()方法需要另一个方法来唤醒......
  • Java并发编程解析 | 基于JDK源码解析Java领域中并发锁之同步器Semaphore,CyclicBarrier
    苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享......
  • 深入理解JUC:第四章:CountDownLatch倒计时器
    理论:CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:CountDownLatch(intcount)//实例化一个倒计数器,count指定计数个数countDown()//计数......
  • 深入理解JUC:第六章:Semaphore信号灯
    理论:Semaphore是synchronized的加强版,作用是控制线程的并发数量多个线程抢多个资源,下面案例是有六台车抢三个停车位使用Semaphore的代码:publicclassDemo{......