【问题标题】:Ruby threads not good enough?Ruby 线程不够好?
【发布时间】:2012-12-13 18:11:33
【问题描述】:

JRuby 对多线程的支持比常规 Ruby 的支持更好吗?普通旧 Ruby 中的线程有什么问题?

【问题讨论】:

标签: ruby multithreading jruby


【解决方案1】:

“普通”ruby(或 mri)有一个很大的锁,可防止多个线程一次运行 ruby​​ 代码(称为 GIL 或 GVL)。

Rubinius 和 jruby 没有这个锁。在 ruby​​ 1.8.x 中,线程也是绿色线程,但从 ruby​​ 1.9 开始,ruby 线程被映射到本地线程。不过,GVL 会阻止您获得很多好处。

原生扩展可以在锁之外运行代码,例如,多个 MySQL 查询可以从不同的线程同时运行,但是当它们不持有锁时它们不能调用常规的 ruby​​ api

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2015-08-03
    • 2017-11-02
    相关资源
    最近更新 更多