【Ruby3.x】Ractor::recv()メソッドの使い方
recvメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
recvメソッドはRactorクラスに属し、他のRactorから送られてきたメッセージを受信するために実行するメソッドです。RactorはRuby 3で導入された並行処理機能で、それぞれが独立した実行環境を持ちます。Ractor間は変数などの状態を直接共有せず、メッセージの送受信を通じて通信し、安全な並行処理を実現します。
このrecvメソッドは、自身のRactorの受信キューに届いたメッセージを一つ取り出して返します。受信キューにメッセージがない場合は、メッセージが届くまで処理を一時停止(ブロック)し、メッセージが届き次第それを受け取って処理を再開します。
recvメソッドは、あるRactorが計算し、その結果を別のRactorが受け取るといった、並行処理間の連携に利用されます。メッセージパッシングにより、複数のRactorが互いに干渉することなく安全に情報をやり取りできます。これは、並行処理におけるデータ同期や競合状態といった複雑な問題を避ける上で役立つ機能です。
構文(syntax)
1r = Ractor.new do 2 Ractor.yield "message_from_ractor" 3end 4message = r.recv
引数(parameters)
引数なし
引数はありません
戻り値(return)
Object
Ractorがメッセージを待機し、受信したオブジェクトを返します。