不是的,ruby 的多线程你可以当作是多个线程争抢一个单核的 cpu 资源,线程还是要经过操作系统调度的,而协程是单个线程一直在执行,但是由调度器在不同的代码块跳转执行,没有产生多余的线程。
Ruby 里面你可以选的有很多:
Ractor 的目标就是利用多核。计算密集任务且任务之间不依赖可以跑满多核心。 虽然还没有正式,但是已经可以用了。我也试过能跑满。
文档:
Conf:
是滴,解释很清楚,协程是存在于线程中的,协程的调度是由程序员决定的,协程的切换相当于函数调用,比线程切换的开销更小。在 Python 里面用的比较多,因为 Python 和 ruby 都有全局解释器锁(多核 CUP 同一时刻也只有一个线程在执行),所以可以通过多进程 + 协程来提高效率。