クラス
- Mutex (2)
- PStore (12)
- Thread (17)
-
Thread
:: ConditionVariable (36) -
Thread
:: Mutex (80) - Tracer (12)
モジュール
-
Mutex
_ m (24) - ObjectSpace (12)
キーワード
- ConditionVariable (12)
-
MUTEX
_ FOR _ THREAD _ EXCLUSIVE (5) -
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 1 . 0 (12) -
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 3
. 0 . 0 (5) -
append
_ features (12) - broadcast (12)
-
count
_ tdata _ objects (12) -
define
_ aliases (12) - exclusive (12)
- lock (10)
- locked? (10)
- new (24)
- owned? (10)
-
ruby 1
. 6 feature (12) - signal (12)
- sleep (10)
-
stdout
_ mutex (12) - synchronize (10)
-
try
_ lock (10) - unlock (10)
- wait (12)
検索結果
先頭5件
-
Mutex
. new -> Thread :: Mutex (21217.0) -
新しい mutex を生成して返します。
...新しい mutex を生成して返します。... -
Thread
:: Mutex (21048.0) -
Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護する ためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):
...Mutex(Mutal Exclusion = 相互排他ロック)は共有データを並行アクセスから保護する
ためにあります。Mutex の典型的な使い方は(m を Mutex オブジェクトとします):
m.lock
begin
# m によって保護されたクリティカルセクション
ensu... -
Thread
:: MUTEX _ FOR _ THREAD _ EXCLUSIVE -> Mutex (15318.0) -
Thread.exclusive用のMutexオブジェクトです。 (private constant です。)
...Thread.exclusive用のMutexオブジェクトです。......Thread.exclusive用のMutexオブジェクトです。
(private constant です。)... -
Tracer
. stdout _ mutex -> Mutex (9202.0) -
@todo
@todo -
Thread
:: ConditionVariable # broadcast -> self (9194.0) -
状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
...read::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wai......t(mutex)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.broadcast
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
# => a2
# => a2
//}... -
Mutex
_ m . append _ features(klass) -> Class | nil (9100.0) -
ユーザが直接、使うことはありません。
...ユーザが直接、使うことはありません。
@see Module#append_features... -
Mutex
_ m . define _ aliases(klass) -> Class (9100.0) -
ユーザが直接、使うことはありません。
ユーザが直接、使うことはありません。 -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (6245.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
...
mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Thread::Mutex......param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続けます。
@see Thread::ConditionVaria......ble#signal, Thread::ConditionVariable#broadcast......
mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Mutex オブ... -
Thread
:: Mutex . new -> Thread :: Mutex (6217.0) -
新しい mutex を生成して返します。
...新しい mutex を生成して返します。... -
Thread
:: ConditionVariable # signal -> self (6182.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
...read::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wai......t(mutex)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.signal
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
//}... -
ObjectSpace
. # count _ tdata _ objects(result _ hash = nil) -> Hash (6112.0) -
T_DATA の種類ごとにオブジェクトの数を格納したハッシュを返します。
...T_DATA の種類ごとにオブジェクトの数を格納したハッシュを返します。
@param result_hash 戻り値のためのハッシュを指定します。省略した場合は新
しくハッシュを作成します。result_hash の内容は上書き......raise TypeError result_hash にハッシュ以外を指定した時に発生します。
本メソッドは普通の Ruby プログラマ向けのメソッドではありません。パフォー
マンスに興味のある C Ruby の開発者向けのものです。
//emlist[例][ruby]{
ObjectSpac......e.count_tdata_objects
# => {RubyVM::InstructionSequence=>504, :parser=>5, :barrier=>6,
# :mutex=>6, Proc=>60, RubyVM::Env=>57, Mutex=>1, Encoding=>99,
# ThreadGroup=>1, Binding=>1, Thread=>1, RubyVM=>1, :iseq=>1,
# Random=>1, ARGF.class=>1, Data=>1, :autoload=>3, Time=>2}
//}
現在の...