1つのRactorは並行実行単位として実行される 1つのRactorは1つ以上のスレッドをもつ スレッドは各 Ractor に属するグローバルロックで共有される Ractor へメッセージを送受信(message passing)しながら同期して実行をすすめる push 型(sender knows receiver)(actor model)の Ractor#send + Ractor.recv pull 型(receiver knows sender)の Ractor.yield + Ractor#take メッセージは Ruby のオブジェクト オブジェクトは共有可能・不可能オブジェクトに二分され、共有不可能オブジェクトはたかだか一つの Ractor からしか参照されない 共有可能オブジェクトをメッセージとして転送すると、単に参照が送られる 共有不可能オブジェクトをメッセージとして転