gpt4 book ai didi

ruby 信号量?

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:01 28 4
gpt4 key购买 nike

我正致力于在 Ruby 中实现“Fair Barbershop”问题。这是一份类作业,但我不是要找任何讲义。我一直在疯狂地搜索,但我似乎无法找到一个信号量的 Ruby 实现来镜像在 C 中找到的信号量。

我知道有 Mutex,这很棒。单一实现,正是那种信号量应该做的。

然后是条件变量。我认为这会很好地解决问题,但是看看这些,每个等待调用都需要一个 Mutex,在我看来我无法将数值放入信号量(例如,我有七个理发店,3理发师等)。

我想我需要一个计数信号量,但我认为 Ruby 没有(据我所知)在其核心中包含这样一个类,这有点奇怪。谁能帮我指出正确的方向?

最佳答案

如果您使用的是 JRuby,则可以从 Java 导入信号量,如 this article 所示。 .

require 'java'

java_import 'java.util.concurrent.Semaphore'

SEM = Semaphore.new(limit_of_simultaneous_threads)
SEM.acquire #To decrement the number available
SEM.release #To increment the number available

关于 ruby 信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478789/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com