Ruby Ruby 3.x 也还是在用 GIL 吗?

msl12 · 2023年02月19日 · 最后由 msl12 回复于 2023年02月24日 · 844 次阅读

😶

是也不是。简单来说,ruby3 可以建多个 ractor。ractor 类似线程,但是互相之间不能共享可变数据,也有各自独立的 GIL 锁,所以可以并行运行。

316786359 回复

原来如此,谢谢

316786359 回复

那是不是相当于多进程模式了

willx 回复

还是有区别的,不变的数据可以共享,底层 C 扩展也可以并行且不受限制。介于进程和线程中间的一种状态吧

willx 回复

多个 Ractor 应该也是在 Ruby 同一个进程里的

相较于进程切换应该更轻量些

不知道准确否

需要 登录 后方可回复, 如果你还没有账号请 注册新账号