【Ruby3.x】Ractor::[]()メソッドの使い方
[]メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
[]メソッドは、Ruby 3で導入された並行処理の機能であるRactorが、他のRactorから送信されたメッセージを受信するためのメソッドです。Ractorは、複数の実行スレッドを分離し、お互いに独立して動作させることで、並列処理における競合状態を避けることを目指しています。この独立したRactor間でデータを安全にやり取りする仕組みがメッセージパッシングであり、[]メソッドはそのメッセージを受け取るための重要な手段となります。
具体的には、別のRactorがRactor#sendメソッドなどを用いてメッセージを送信すると、そのメッセージは受信側のRactorの内部キューに追加されます。この[]メソッドを呼び出すことで、受信Ractorはそのキューからメッセージを一つ取り出して処理することができます。もしメッセージキューが空で、まだ受信すべきメッセージが届いていない場合は、新しいメッセージが到着するまで、このメソッドを呼び出したRactorは処理を一時停止(ブロック)します。
この機能により、Ractorはデータを共有メモリではなくメッセージとしてやり取りすることで、並列処理における複雑な同期メカニズムを減らし、安全で予測可能なデータ交換を実現します。結果として、複数のタスクを並行して実行しながらも、データの整合性を保ちやすくなります。Ractor#recvメソッドと機能的に同じであり、Ractor間の安全な通信を確立するために活用されます。
構文(syntax)
1ractor[:key]
引数(parameters)
引数なし
引数はありません
戻り値(return)
Object
指定されたキーに対応する値を返します。キーが存在しない場合は nil を返します。