Updated with Jörg's Sept 2011 comment
你似乎混淆了两个very种不同的东西:
(不幸的是,在这11种实现中,只有两种是实际的.)
第一个实现实际上没有名称
它有时也被称为"MRI"(代表"Matz的Ruby")
MRI implements Ruby Threads as Green Threads within its interpreter.不幸的是,它不允许这些线程
但是,可以运行任意数量的C线程(POSIX线程等)
第二个实现是YARV(简写为"尚未"
像MRI一样,C线程can实际上与Ruby线程并行运行.
在future ,GIL might可能会损坏
XRuby也有implements Ruby Threads as JVM Threads.Update:XRuby死了.
Ruby.NET也有implements Ruby Threads as CLR Threads.Update:鲁比.NET死了.
Rubinius implements Ruby Threads as Green Threads within its Virtual Machine. 更准确地说:鲁宾尼乌斯
Rubinius(目前)无法并行调度线程,
Update:这个答案中关于Rubinius的信息是关于猎枪虚拟机的,它已经不存在了."新"C++ VM不使用跨多个VM(即Erlang /Bar样式)调度的绿色线程,它使用了一个更传统的单一VM,它具有多个原生OS线程模型,就像CLR、莫诺河和几乎所有JVM所使用的一样.
MacRuby号最初是亚尔夫港的一个港口
Cardinal是Parrot Virtual Machine的Ruby实现.然而,它还没有实现线程,
MagLev是GemStone/S Smalltalk VM的Ruby实现.我没有关于线程模型的信息
HotRuby是它的完整Ruby实现
不幸的是,这11个Ruby实现中只有两个是
所以,如果你想要真正的并行线程,JRuby目前是你的首选
否则,"classic "的Ruby解决方案就是使用进程