122件ヒット
[1-100件を表示]
(0.053秒)
種類
- インスタンスメソッド (58)
- クラス (22)
- 特異メソッド (18)
- モジュール (12)
- 定数 (12)
クラス
-
PStore
:: DummyMutex (12) - Shell (6)
- Thread (12)
-
Thread
:: ConditionVariable (24) -
Thread
:: Mutex (10)
キーワード
- ConditionVariable (12)
- MonitorMixin (12)
- Mutex (10)
-
SC
_ SYNCHRONIZED _ IO (12) - broadcast (12)
-
debug
_ output _ synchronize (6) - exclusive (12)
- signal (12)
-
sync
_ synchronize (6)
検索結果
先頭5件
-
Thread
:: Mutex # synchronize { . . . } -> object (21107.0) -
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 (21101.0) -
与えられたブロックを評価するだけで何もしません。
与えられたブロックを評価するだけで何もしません。 -
Sync
_ m # synchronize(mode = EX) { . . . } -> object (18202.0) -
ロック状態を変更してブロックを実行します。 ブロックの実行結果を返します。
...ロック状態を変更してブロックを実行します。
ブロックの実行結果を返します。
@param mode 変更後の状態を指定します。
通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。... -
Shell
. debug _ output _ synchronize (12207.0) -
@todo
...@todo
@see Mutex#synchronize......@todo
@see Thread::Mutex#synchronize... -
Sync
_ m # sync _ synchronize(mode = EX) { . . . } -> object (6202.0) -
ロック状態を変更してブロックを実行します。 ブロックの実行結果を返します。
...ロック状態を変更してブロックを実行します。
ブロックの実行結果を返します。
@param mode 変更後の状態を指定します。
通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。... -
Etc
:: SC _ SYNCHRONIZED _ IO -> Integer (6200.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Thread
:: ConditionVariable # broadcast -> self (6112.0) -
状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
...た
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
whil......e (flg)
cv.wait(mutex)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.broadcast
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
# => a2
# => a2
//}... -
Thread
:: ConditionVariable (6024.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...構の一つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたと......A がリソースの空きを
待っていても、いつまでも空くことはありません。
以上のような状況を解決するのが Condition Variable です。
スレッド a で条件(リソースが空いているかなど)が満たされるまで wait メソッドで
スレッド......= Mutex.new
cv = ConditionVariable.new
a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(mutex)
end
...
}
}
b = Thread.start {
mutex.synchronize {
# 上の条... -
Thread
:: ConditionVariable # signal -> self (3012.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
...た
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
whil......e (flg)
cv.wait(mutex)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.signal
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
//}... -
Thread
. exclusive { . . . } -> object (3006.0) -
VM グローバルの Mutex をロックし、ブロックを実行します。
...す。
このクラスメソッドの挙動は 1.8 以前とは違います。
Thread.exclusive は VM グローバルの Thread::MUTEX_FOR_THREAD_EXCLUSIVE の
synchronize を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Mutex や Monitor などの......ドの挙動は 1.8 以前とは違います。
Thread.exclusive は VM グローバルの Thread::MUTEX_FOR_THREAD_EXCLUSIVE の
synchronize を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Thread::Mutex や Monitor などの他の排他制御の方......ラスメソッドの挙動は 1.8 以前とは違います。
Thread.exclusive は VM グローバルの Mutex の
synchronize を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Thread::Mutex や Monitor などの他の排他制御の方法を検討...