红宝石信号量?

2023-12-31

我正在研究用 Ruby 实现“Fair Barbershop”问题。这是课堂作业,但我不是在寻找任何讲义。我一直在疯狂地搜索,但我似乎无法找到反映 C 中信号量的 Ruby 实现。

我知道有 Mutex,这很棒。单一实现,完全完成了那种信号量应该做的事情。

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

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


如果您使用 JRuby,则可以从 Java 导入信号量,如下所示本文 http://blog.paracode.com/2012/09/07/pragmatic-concurrency-with-ruby/.

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

红宝石信号量? 的相关文章

随机推荐

  • System.MissingMethodException:找不到方法“MvvmCross.Droid.Views.MvxAndroidViewPresenter..ctor”

    我创建了安装程序 MvxAndroidSetup public class Setup MvxAndroidSetup public Setup Context applicationContext base applicationCont
  • AppCompatActivity 与 AppCompatDelegate

    最近我发现什么是 AppCompatDelegate 所以一个自然的问题出现了 它比使用 AppCompatActivity 更糟糕还是它们有区别以及它们是什么 如果您的活动类没有扩展AppCompatActivity 但您仍然想使用它的一
  • 如何将 PHP 变量传递给 swift [重复]

    这个问题在这里已经有答案了 我希望 php 中的变量能够快速传递 或获取变量的值 我怎样才能做到这一点 name William 如何将字符串 William 添加到我的 Swift 脚本中 谁能帮我 我知道这是 JSON 和 POST 之
  • 错误:FIREBASE 致命错误:无法解析 Firebase url。请使用 https://.firebaseio.com 但数据库 url 不是 firebaseio.com expo

    我正在为我的 ios 应用程序使用 Expo SDK 当我尝试在 firebase 数据库中写入数据但收到错误时 错误 FIREBASE 致命错误 无法解析 Firebase URL 请使用 https firebaseio com 我的
  • 如何格式化符合PEP8的python断言语句?

    如何格式化符合 PEP8 的长断言语句 请忽略我的例子的人为性质 def afunc some param name assert isinstance some param name SomeClassName some param na
  • 添加对解决方案之外的项目的引用

    我的解决方案目录之外有一个项目 该项目位于 C myproject 目录中 现在我想从我的项目添加对它的引用 该项目位于 VS 项目的默认项目目录中 我在 VS2013 中打开项目属性 并在引用路径中添加了该目录 C myproject 当
  • 使用数据库信息填充 JSP 下拉列表

    我正在尝试从数据库表填充 JSP 下拉列表 下面的代码将创建数组并用数据库信息填充它 this will create my array public static ArrayList
  • 如何使用聚合框架创建新的数组字段

    我开始使用 mongoDb 但我遇到了一个简单的用例 假设我有一个集合 aCollection 其中包含如下条目 id ObjectId 123 lat 48 56623 long 2 56332 我想创建一个包含如下条目的新集合 id O
  • ggplot2中密度曲线下的阴影面积

    我已经绘制了一个分布 我想对 gt 95 的区域进行着色 但是 当我尝试使用此处记录的不同技术时 ggplot2 按组密度曲线下的阴影面积 https stackoverflow com questions 20355849 ggplot2
  • 在Windows 7中运行MinGW gcc编译器,无需设置环境变量

    我在 Windows 中有一个 MinGW 文件夹 但没有在环境变量中设置任何路径 当我运行以下命令时 D toolchains MinGW bin gt gcc exe hw c o hw 我收到这个错误 gcc exe error Cr
  • Yii2 GridView实现外部表相关表的值过滤和排序

    我有 3 张表 CREATE TABLE tabCve intCveID INTEGER NOT NULL AUTO INCREMENT strNumber VARCHAR 20 NOT NULL fltScore FLOAT 0 strD
  • Postgres 9.4 在刷新物化视图期间挂起

    我正在考虑 Postgres 9 4 中物化视图的问题 有时查询 刷新物化视图xxx 会永远挂起 我发现的唯一方法是完全重新启动 postgres 服务 重新启动后执行需要几秒钟 我的视图并不复杂 大约使用 10 个表 我已经执行了sele
  • 显示 W3C 合规性

    我认为大多数人都同意遵守 W3C 标准是值得追求的 但是 您是否宣传您的网站合规这一事实 这样做有积极的一面还是消极的一面 如果你确实表现出你的顺从 你会怎样做 我不知道 因为普通用户不知道网站 有效 意味着什么 如果关心此类事情的人感兴趣
  • 强制带注释的类包含带注释的字段

    是否可以强制 在编译时 带注释的类具有带注释的字段 我有这个注释 Target value ElementType TYPE interface MyClass Target value ElementType FIELD interfac
  • ASP.Net Core 2.1 注册自定义ClaimsPrincipal

    我正在创建一个 Windows 身份验证应用程序 但角色位于自定义数据库中而不是 AD 上 因此我创建了一个自定义 ClaimsPrincipal 来覆盖通常在 AD 中查找角色的 User IsInRole 函数 但是 在运行应用程序时
  • 如何使用带有多个参数的 Flask Jinja2 url_for

    我在使用时遇到问题jinja2 url for 功能 我有这样的路线 app route article
  • 使用 VBA 将字段添加到 MS Access 表

    我需要将计算字段添加到现有表中 我知道有两种方法可以做到这一点 我想知道是否有人对哪种方法最好以及如何使它们发挥作用有任何意见 使用 TableDef CreateField 然后使用 TableDef Fields Append 使用 D
  • Jenkins 在参数上跳过 SCM

    有谁知道如何使作业跳过命令 参数 上的 SCM 步骤 我希望能够触发作业并使用现有视图 在我的例子中为 ClearCase 但可以是 SVN 工作副本 来运行构建 这样做的动机是为了节省时间 我的 ClearCase 视图需要大约 20 分
  • C++ 控制台输入块,所以我无法杀死线程

    我的程序有许多不同的线程处理不同的事情 其中 之一处理用户输入 其他线程没有太多阻止调用的方式 而那些阻止的线程是基于网络的 因此当套接字关闭时将被中断或正常返回 然而 用户线程调用std cin以获取用户输入 这样做的效果是 当所有其他线
  • 红宝石信号量?

    我正在研究用 Ruby 实现 Fair Barbershop 问题 这是课堂作业 但我不是在寻找任何讲义 我一直在疯狂地搜索 但我似乎无法找到反映 C 中信号量的 Ruby 实现 我知道有 Mutex 这很棒 单一实现 完全完成了那种信号量