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

steve · February 23, 2021 · Last by linlinda replied at November 03, 2023 · 672 hits

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 被忽略了

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