将 Semaphore obj 置于等待状态的方法

发布于 2024-10-21 20:55:17 字数 58 浏览 1 评论 0原文

有没有办法让 Semaphore obj 进入等待模式?例如,如果我需要等待许可证数量上升到一定数量?

Is there a way of putting Semaphore obj into a wait mode? For example, if I need to wait for a numbers of permits to rise to a certain number?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

只需使用 信号量.acquire(int 允许)。它将等待,直到有可用的许可许可。

如果您想确保以后没有其他线程可以“窃取”许可,因此它需要下一个可用许可许可,请使用fair<创建信号量/code> 设置为 true。

Just use Semaphore.acquire(int permits). It will wait until there are permits permits available.

If you want to be sure that no other thread coming later can "steal" permits, so it takes the next available permits permits, create the Semaphore with fair set to true.

┼── 2024-10-28 20:55:17

请查看此链接中的示例 http ://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html。您可以在 getNextAvailableItem() 方法中添加条件来等待许可数量达到链接中的特定数量示例。分享有关您的问题的更多详细信息/描述。

Please check out the example at this link http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html. you can add the condition in getNextAvailableItem() method to wait for number of permits to rise to a certain number of example in the link. Share more details/description about your problem.

破晓 2024-10-28 20:55:17

抱歉,我不明白你想做什么。听起来 CyclicBarrier 将是一个在这种情况下有更好的机制。

Sorry I didn't understand what you were trying to do. It sounds like CyclicBarrier would be a better mechanism in this case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文