Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Fiber::kill()メソッドの使い方

killメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

killメソッドは、現在実行中であるか、または実行が一時停止されている(中断状態にある)かどうかにかかわらず、特定のファイバーを強制的に終了させるメソッドです。このメソッドが呼び出されると、対象のファイバーの実行フロー内部で例外(通常はRuntimeError)が強制的に発生させられ、そのファイバーの処理を直ちに中断させます。これにより、ファイバーは本来の処理を最後まで実行することなく停止します。

しかし、Ruby 3.0以降のバージョンでは、このFiber#killメソッドは非推奨(deprecated)とされており、代わりにFiber#terminateメソッドが同等の機能を果たすために導入されています。したがって、Ruby 3環境でファイバーを強制終了させる必要がある場合には、killではなくterminateメソッドを使用することが推奨されます。killの動作は、主に以前のバージョンのRubyにおけるファイバー管理で利用されていましたが、現代のRubyでは、より明確な名前を持つterminateメソッドを用いることで、意図しない挙動を防ぎ、より安全で保守しやすい並行処理を実装できるためです。

構文(syntax)

1f = Fiber.new do
2  puts "Fiber started"
3  Fiber.yield
4  puts "Fiber resumed" # This line will not be reached if the fiber is killed
5end
6
7f.resume # Start the fiber
8f.kill # Terminate the fiber

引数(parameters)

引数なし

引数はありません

戻り値(return)

Fiber

Fiber.kill は、実行中の Fiber を強制的に終了させ、その Fiber オブジェクト自身を返します。

関連コンテンツ