るりまサーチ

最速Rubyリファレンスマニュアル検索!
22件ヒット [1-22件を表示] (0.023秒)
トップページ > クエリ:sync[x] > クエリ:new[x] > クエリ:synchronize[x]

別のキーワード

  1. gdbm sync
  2. etc pc_sync_io
  3. stringio sync
  4. stringio sync=
  5. csv sync=

ライブラリ

クラス

検索結果

Mutex#synchronize { ... } -> object (24213.0)

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

...また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}...

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

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

...また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}...

Mutex_m (30.0)

スレッド同期機構である Mutex のモジュール版です。クラスに Module#include することでそのクラスに Mutex 機能を持たせることができます。 また、普通のオブジェクトを Object#extend により Mutex にする事ができます。

...によるロックは再入不可能です。再入可能な同等品が必要な場合は
Sync
_m の利用を考えてください。

「mu_」の付かないメソッド(Mutex_m#lock, Mutex_m#synchronize,
Mutex_m#locked?, Mutex_m#try_lock, Mutex_m#unlock)
はモジュールにincludeした場合...
..."mutex_m"
class Foo
include Mutex_m
...
end
obj = Foo.new
obj.synchronize do
# 危険領域(critical section)
...
end

オブジェクトに Object#extend する例
require "mutex_m"
obj = Object.new
obj.extend(Mutex_m)
obj.lock
# 危険領域(critical section)...