我们能在Ruby中并行运行多线程吗?

3

请告诉我有没有一种方法可以并行运行多线程。目前我所知道的是,Ruby有一个全局解释器锁或全局VM锁,它会阻止线程并行运行和实现并发性。请提供一些良好的详细线程示例,以便真正理解和验证线程是否在并行或同时工作。

1个回答

1
不是用MRI(只有并发),但是可以用jRuby。 看看这篇好文章, 关于这个主题还有很多其他的文章,但这一篇比较新,提供了很好的建议。

2
Rubinius 2.0也具有真正的多线程功能,但它仍在开发中。 - d11wtq
还要注意:C扩展可以解锁GIL。因此,根据您想要做什么,您可能已经使用了一个可以绕过这个限制的库。 - Marc Seeger
还有一件需要考虑的事情是什么呢?我在某个地方读到过,真正的多线程受限于你运行的 CPU 核心数量。这不意味着如果你有双核处理器,你只能得到两个并行线程吗? - Redoman
这是一篇非常棒的文章 - 是我读过的最清晰的线程介绍。 - nonbeing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接