На конференции обсуждали богатый внутренний мир ракторов. Я чутка посмотрел в сорцы и, если правильно понял, то они все живут в одном процессе:
* Ruby VM, rb_vm_t, создат ракторы rb_ractor_t по запросу. Каждый рактор - это отдельное дерево объектов, отдельный контекст выполнения байткода. Для всех потоков, связанных с одним рактором, общий GVL. VM выполняется независимо друг от друга для каждого рактора. Если у рактора больше одного потока, то VM этого рактора будет выполнять байткод только в одном потоке, сишный нативный код может выполнять в нескольких потоках одновременно в зависимости от состоянил лока.
* Каждый рактор связан с одни или больше потоков.
* С каждым потоком могут быть связаны файберы.
Поправьте, если где ошибки.