るりまサーチ (Ruby 2.5.0)

最速Rubyリファレンスマニュアル検索!
2件ヒット [1-2件を表示] (0.025秒)

別のキーワード

  1. _builtin each_object
  2. objectspace each_object
  3. object send
  4. object enum_for
  5. object to_enum

検索結果

Thread::Mutex#synchronize { ... } -> object (54631.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

ブロックが最後に評価した値を返します。

@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # =>...

Thread.exclusive { ... } -> object (328.0)

VM グローバルの Mutex をロックし、ブロックを実行します。

VM グローバルの Mutex をロックし、ブロックを実行します。

このクラスメソッドの挙動は 1.8 以前とは違います。
Thread.exclusive は VM グローバルの Thread::MUTEX_FOR_THREAD_EXCLUSIVE の
synchronize を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Thread::Mutex や Monitor などの他の排他制御の方法を検討してください。