我对 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
您应该尝试两者并经常比较它们。