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

msl12 · February 19, 2023 · Last by msl12 replied at February 24, 2023 · 826 hits

😶

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

Reply to 316786359

原来如此,谢谢

Reply to 316786359

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

Reply to willx

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

Reply to willx

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

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

不知道准确否

You need to Sign in before reply, if you don't have an account, please Sign up first.