Теория
Как в Ruby реализована вытесняющая многозадачность?
Почему переключение потоков не равно параллельному исполнению, как влияет GVL в CRuby и чем отличаются JRuby и fibers.
Читать ответ