118件ヒット
[101-118件を表示]
(0.116秒)
クラス
- Monitor (6)
-
Thread
:: ConditionVariable (36) -
Thread
:: Queue (22) - ThreadsWait (42)
モジュール
-
Sync
_ m (12)
キーワード
-
all
_ waits (6) - broadcast (12)
- close (10)
- empty? (6)
- finished? (6)
- join (6)
-
join
_ nowait (6) -
next
_ wait (6) -
num
_ waiting (12) - signal (12)
-
sync
_ upgrade _ waiting (6) -
sync
_ waiting (6) - threads (6)
-
wait
_ for _ cond (6)
検索結果
-
Thread
:: ConditionVariable # signal -> self (3051.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 {
pu......ts "a1"
while (flg)
cv.wait(mutex)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.signal
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
//}... -
Thread
:: Queue # close -> self (3043.0) -
キューを close します。close 済みのキューを再度 open することはできません。
...以下のように動作します。
* Thread::Queue#closed? は true を返します
* Thread::Queue#close は無視されます
* Thread::Queue#enq/push/<< は ClosedQueueError を発生します
* Thread::Queue#empty? が false を返す場合は Thread::Queue#deq/pop/shift は通常通り......オブジェクトを返します
また、ClosedQueueError は StopIteration を継承しているため、
close する事でループから脱出する事もできます。
例:
q = Queue.new
Thread.new{
while e = q.deq # wait for nil to break loop
# ...
end
}
q.close...