为什么tryAcquire为true,但是无法执行acquire

 

 

因为你取反了,用了!表示取反的意思。

tryAcquire尝试获取令牌,获取了返回true,没有获取返回false(不会阻塞线程,重点是它也会占用一个令牌),你的令牌桶大小才1(new Semaphore(1))个令牌,已经被tryAcquire获取了,acquire怎么获取令牌,获取不到令牌,你没有传等待时长,线程就一直阻塞了,把令牌桶放大点。

代码不全,看不出问题,把代码贴出来看看。

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632