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

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

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

作成日: 更新日:

基本的な使い方

synchronizeメソッドは、RubyのMonitorクラスに属し、マルチスレッド環境における共有リソースへの排他制御を行うためのメソッドです。複数のスレッドが同時に同じデータやオブジェクトにアクセスする際に発生する、データ競合(Race Condition)と呼ばれる問題を防ぐために利用されます。

このメソッドはブロックを受け取り、そのブロック内の処理を排他的に実行します。具体的には、synchronizeメソッドが呼び出されると、Monitorオブジェクトがロックを取得し、ブロック内の処理が完了するまで他のスレッドが同じMonitorオブジェクトに対してsynchronizeを呼び出しても、その処理が開始されることなく待機します。ブロックの実行が終了すると、Monitorオブジェクトは自動的にロックを解放します。

これにより、一度に一つのスレッドだけがクリティカルセクション(排他的に実行されるべき重要な処理)を実行することを保証し、共有データの整合性を安全に保つことが可能になります。

構文(syntax)

1require 'monitor'
2
3monitor = Monitor.new
4monitor.synchronize do
5end

引数(parameters)

引数なし

引数はありません

戻り値(return)

object

Monitorクラスのsynchronizeメソッドは、ブロックの実行結果を返します。

関連コンテンツ