やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

組込ライブラリ(Thread::Mutex)

 相互排他ロック。

成果物

情報源

Thread::Mutex

Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護するためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):

m.lock
begin
  # m によって保護されたクリティカルセクション
ensure
  m.unlock
end

または、より簡単に

m.synchronize {
  # m によって保護されたクリティカルセクション
}

メンバ抜粋

特異メソッド

new

インスタンスメソッド

lock locked? owned? sleep synchronize try_lock unlock

new,synchronize

p Thread::Mutex.new
m = Thread::Mutex.new
m.synchronize {
  p 'mutex'
}

 synchronizeはブロックの前後でlockunlockをする。

対象環境

$ uname -a
Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux