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

【Ruby3.x】Thread::Mutex::unlock()メソッドの使い方

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

作成日: 更新日:

基本的な使い方

unlockメソッドは、RubyのThread::Mutexクラスに属し、ミューテックス(排他ロック)を解除するメソッドです。Thread::Mutexは、複数のスレッドが同時に共有リソース(データやファイルなど)にアクセスする際に、データの一貫性を保つための仕組みを提供します。

具体的には、あるスレッドがlockメソッドでミューテックスを取得すると、そのスレッドだけが保護されたリソースにアクセスできるようになり、他のスレッドはlockメソッドを呼び出すと、ミューテックスが解放されるまで待機します。unlockメソッドは、このlockメソッドによって設定されたロックを解放し、待機していた他のスレッドがミューテックスを取得してリソースにアクセスできるようになります。

重要な点として、ミューテックスをlockしたスレッドのみがunlockを呼び出すことができます。もしロックしていないスレッドがunlockを試みたり、既に解除されているミューテックスに対してunlockを呼び出したりすると、ThreadErrorが発生します。通常、lockunlockはセットで使用され、特に例外発生時にも確実にロックを解除するため、Rubyのensureブロックと組み合わせて使用することが推奨されます。これにより、共有リソースへの安全なアクセスが保証され、並行処理におけるデータの破損を防ぎます。

構文(syntax)

1mutex = Thread::Mutex.new
2mutex.unlock

引数(parameters)

引数なし

引数はありません

戻り値(return)

self

Thread::Mutex#unlock メソッドは、ミューテックスのロックを解放します。このメソッドは、ロックを解放したミューテックスオブジェクト自身を返します。

関連コンテンツ