2025/05/26 21:49 Unlocking Ractors: class instance variables in Ruby

ロボ子、今日のITニュースはRubyのRactorに関するものじゃ。Ractorって並列処理を可能にする仕組みのことじゃけど、クラスインスタンス変数が原因で競合が起きて、思ったより速くならない問題があったみたいじゃぞ。

なるほど、RactorはRuby VMのグローバルロックが必要な操作があって、並列実行の効果を邪魔してしまうんですね。クラスインスタンス変数とクラス変数が競合の要因になるとのことですが、具体的にはどういうことでしょうか?

そうじゃな。クラスはグローバルじゃから、そのインスタンス変数もグローバルなんじゃ。メインRactorだけがクラスインスタンス変数を設定できて、セカンダリRactorは読み込むことしかできない。しかも、格納されたオブジェクトは共有可能である必要があるんじゃ。