クラス
- Mutex (2)
-
PStore
:: DummyMutex (11) - Shell (6)
- Thread (11)
-
Thread
:: ConditionVariable (22) -
Thread
:: Mutex (9)
モジュール
-
Mutex
_ m (22)
キーワード
- ConditionVariable (11)
- Monitor (11)
- Mutex (11)
-
Mutex
_ m (11) -
NEWS for Ruby 2
. 0 . 0 (11) - broadcast (11)
-
debug
_ output _ synchronize (6) - exclusive (11)
- monitor (11)
-
mu
_ synchronize (11) - signal (11)
- synchronize (33)
検索結果
先頭5件
-
Mutex
# synchronize { . . . } -> object (62145.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
ブロックが最後に評価した値を返します。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生しま......また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}... -
Mutex (38054.0)
-
Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護する ためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):
...Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護する
ためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):
m.lock
begin
# m によって保護されたクリティカルセクション
ensu......re
m.unlock
end
または、より簡単に
m.synchronize {
# m によって保護されたクリティカルセクション
}... -
Thread
:: Mutex # synchronize { . . . } -> object (24145.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
ブロックが最後に評価した値を返します。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生しま......また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}... -
PStore
:: DummyMutex # synchronize { . . . } -> object (24101.0) -
与えられたブロックを評価するだけで何もしません。
与えられたブロックを評価するだけで何もしません。 -
Mutex
_ m # synchronize { . . . } -> object (21102.0) -
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
ブロックで最後に評価した値を返します。 -
Thread
:: Mutex (18054.0) -
Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護する ためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):
...Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護する
ためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):
m.lock
begin
# m によって保護されたクリティカルセクション
ensu......re
m.unlock
end
または、より簡単に
m.synchronize {
# m によって保護されたクリティカルセクション
}... -
Mutex
_ m # mu _ synchronize { . . . } -> object (9102.0) -
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
ブロックで最後に評価した値を返します。 -
Shell
. debug _ output _ synchronize (6119.0) -
@todo
...@todo
@see Mutex#synchronize......@todo
@see Thread::Mutex#synchronize... -
Mutex
_ m (6114.0) -
スレッド同期機構である Thread::Mutex のモジュール版です。クラスに Module#include することでそのクラスに Mutex 機能を持たせることができます。 また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
...スレッド同期機構である Mutex のモジュール版です。クラスに
Module#include することでそのクラスに Mutex 機能を持たせることができます。
また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
このモジ......ないメソッド(Mutex_m#lock, Mutex_m#synchronize,
Mutex_m#locked?, Mutex_m#try_lock, Mutex_m#unlock)
はモジュールにincludeした場合には定義されません。
1991
=== 例
クラスに Module#include する例
require "mutex_m"
class Foo
include Mutex_m
...
end
ob......j = Foo.new
obj.synchronize do
# 危険領域(critical section)
...
end
オブジェクトに Object#extend する例
require "mutex_m"
obj = Object.new
obj.extend(Mutex_m)
obj.lock
# 危険領域(critical section)
...
obj.unlock......レッド同期機構である Thread::Mutex のモジュール版です。クラスに
Module#include することでそのクラスに Mutex 機能を持たせることができます。
また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
このモ... -
NEWS for Ruby 2
. 0 . 0 (108.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...bject.const_get("Foo::Bar::Baz")
//}
* Mutex
* 追加(実験的): Mutex#owned? mutex が現在のスレッドに所持されているかどうかを返します
* 非互換:
* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize, Mutex#sleep
はトラップハンド......ラの中では使えなくなりました。そのようなときは ThreadError が発生します
* Mutex#sleep may spurious wakeup. Check after wakeup.
* NilClass
* 追加: NilClass#to_h 空のハッシュを返します
* ObjectSpace::WeakMap
* 弱い参照を保持するた......_clone, Object#initialize_dup
* private になりました
* Thread#join, Thread#value
* 上を参照
* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize, Mutex#sleep
* 上を参照
=== 標準添付ライブラリの更新 (優れたもののみ)
* cgi
* HTML5 用... -
Thread
:: ConditionVariable (90.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...す。
mutex = Mutex.new
cv = ConditionVariable.new
a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(mutex)
end
...
}
}
b = Thread.start {
mutex.synchronize {......@mutex = Mutex.new
@q = []
end
def count
@q.size
end
def enq(v)
@mutex.synchronize{
@full.wait(@mutex) if count == @max
@q.push v
@empty.signal if count == 1
}
end
def deq
@mutex.synchronize{
@empty.wait(@mutex)... -
Monitor (70.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。
MonitorMixin を include し、いくつかの別名を定義したクラスです。
=== 例
//emlist[......ew
empty_cond = mon.new_cond
# consumer
Thread.start do
loop do
mon.synchronize do
empty_cond.wait_while { buf.empty? }
print buf.shift
end
end
end
# producer
while line = ARGF.gets
mon.synchronize do
buf.push(line)
empty_cond.signal
end
end
//}
2回ロック......uby]{
require 'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}
Thread::Mutex ではデッドロックになります。
//emlist[Mutex でデッドロックになる例][ruby]{
mx = Mutex.new
mx.synchronize {
mx.synchronize {
}
}
# => deadlock; recursive locking (Thr...