如何在 ruby 中禁用 GIL?
How to disable GIL in ruby?
我是 Ruby 的新手,我正在开发一个 运行 多线程 ruby 程序的项目,该程序使用赛璐珞库实现。
当我尝试使用命令 运行 程序时似乎是这样:
ruby program_name.rb
代码没有 运行 正确,它说 GIL 正在阻止它使用多核。我知道 GIL 是 ruby 解释器使用的一种锁定机制,但我想知道是否有一种方法可以通过特殊命令禁用它来制作并发程序 运行。
如果这是不可能的,有没有其他方法可以在 ruby 中执行多线程程序/使用任何支持 Ruby 中的这种多线程的在线 editor/IDE?
使用 jRuby 或 Rubinius
我更喜欢 rvm
。参见:http://rvm.io
然后运行:
rvm get stable
rvm install jruby
对于 jRuby。将 Rubinius 更改为 rbx
。
然后您可以通过以下方式在 Ruby 个引擎之间切换:
rvm use <jruby/rbx>
使用 Celluloid
你应该尝试两者并经常比较它们。
我是 Ruby 的新手,我正在开发一个 运行 多线程 ruby 程序的项目,该程序使用赛璐珞库实现。
当我尝试使用命令 运行 程序时似乎是这样:
ruby program_name.rb
代码没有 运行 正确,它说 GIL 正在阻止它使用多核。我知道 GIL 是 ruby 解释器使用的一种锁定机制,但我想知道是否有一种方法可以通过特殊命令禁用它来制作并发程序 运行。
如果这是不可能的,有没有其他方法可以在 ruby 中执行多线程程序/使用任何支持 Ruby 中的这种多线程的在线 editor/IDE?
使用 jRuby 或 Rubinius
我更喜欢 rvm
。参见:http://rvm.io
然后运行:
rvm get stable
rvm install jruby
对于 jRuby。将 Rubinius 更改为 rbx
。
然后您可以通过以下方式在 Ruby 个引擎之间切换:
rvm use <jruby/rbx>
使用 Celluloid
你应该尝试两者并经常比较它们。