Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
JRuby 对多线程的支持比普通 Ruby 的支持好多少?普通旧 Ruby 中的线程有什么问题?
“普通”ruby(或 mri)有一个很大的锁,可以防止多个线程一次运行 ruby 代码(称为 GIL 或 GVL)。
Rubinius 和 jruby 没有这个锁。在 ruby 1.8.x 中,线程也是绿色线程,但是从 ruby 1.9 开始,ruby 线程被映射到本地线程。不过,GVL 会阻止您获得很多好处。
本机扩展可以在锁之外运行代码,例如,多个 MySQL 查询可以从不同的线程同时运行,但是当它们不持有锁时它们不能调用常规的 ruby api