Ruby Ruby 3 了,thread 和 fiber,哪个更容易发挥多核的性能?

steve · 2021年02月23日 · 最后由 steve 回复于 2021年02月24日 · 479 次阅读

GIL 仍然存在

都有 gil,目前直接用,应该是 thread,因为可以自动切线程,调 C extensition 等一些场景可以放开 gil 并行加速。fiber 需要用专门封装的 api 才能达到释放切线程的作用。 另外 ruby3 要压榨多线程性能不应该用 ractor 吗

一个是系统控制 一个是 coder 控制 这么理解的话应该是前者

@316786359 ractor 还是实验性功能

@Awlter1 fiber 由 coder 调度不一定不好吧。不知道 thread 和 fiber 各适合什么场景

错略的讲, IO 密集的用 Thread 就够了, 如果发现 CPU 的单核成了瓶颈, 切换到 Ractor. 如果是 CPU 密集的, 选 Ractor.

@wwwicbd fiber 被忽略了

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