如何在红宝石中禁用 GIL



我对 Ruby 几乎是新手,我正在做一个运行使用赛璐珞库实现的多线程 Ruby 程序的项目。

似乎当我尝试使用以下命令运行程序时:

ruby program_name.rb

代码无法正常运行,它说 GIL 正在阻止它使用多个内核。我知道 GIL 是 ruby 解释器使用的一种锁定机制,但我想知道是否有办法使用特殊命令来使并发程序运行。

如果这是不可能的,有没有其他方法可以在 ruby 中执行多线程程序/使用任何支持 Ruby 中这种多线程的在线编辑器/IDE?

使用 jRuby 或 Rubinius

我更喜欢rvm。请参阅:http://rvm.io

然后运行:

rvm get stable
rvm install jruby 

对于 jRuby。改为rbx鲁比纽斯。

然后,您可以使用以下方法在 Ruby 引擎之间切换:

rvm use <jruby/rbx>

使用Celluloid您应该尝试两者并经常比较它们。

最新更新