头条面试居然跟我扯了半小时的Semaphore

释放双眼,带上耳机,听听看~!

:Semaphore内部主要通过AQS(AbstractQueuedSynchronizer)实现线程的管理。Semaphore在构造时,需要传入许可证的数量,它最后传递给了AQS的state值。线程在调用acquire方法获取许可证时,如果Semaphore中许可证的数量大于0,许可证的数量就减1,线程继续运行,当线程运行结束调用release方法时释放许可证时,许可证的数量就加1。如果获取许可证时,Semaphore中许可证的数量为0,则获取失败,线程进入AQS的等待队列中,等待被其它释放许可证的线程唤醒。

【转自慕课】https://www.imooc.com

JAVA

腾讯面试居然跟我扯了半小时的CountDownLatch

2022-3-3 3:52:29

JAVA

try-catch block 问题总结(关于死循环和初始化及日期转换方法)

2022-3-3 4:00:27

搜索