クラス
-
PStore
:: DummyMutex (1) -
Shell
:: ProcessController (1) - Thread (1)
-
Thread
:: ConditionVariable (2) -
Thread
:: Mutex (1)
モジュール
- Etc (1)
- MonitorMixin (2)
-
Mutex
_ m (2) -
Sync
_ m (2)
キーワード
- ConditionVariable (1)
-
Mutex
_ m (1) -
NEWS for Ruby 2
. 0 . 0 (1) -
SC
_ SYNCHRONIZED _ IO (1) -
block
_ output _ synchronize (1) - broadcast (1)
- exclusive (1)
-
mon
_ synchronize (1) -
mu
_ synchronize (1) - signal (1)
-
sync
_ synchronize (1)
検索結果
先頭5件
-
Thread
:: Mutex # synchronize { . . . } -> object (72922.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
ブロックが最後に評価した値を返します。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # =>... -
MonitorMixin
# synchronize { . . . } -> object (72907.0) -
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
ブロックの評価値を返り値として返します。
@see MonitorMixin#mon_enter -
Mutex
_ m # synchronize { . . . } -> object (72907.0) -
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
ブロックで最後に評価した値を返します。 -
Sync
_ m # synchronize(mode = EX) { . . . } -> object (72907.0) -
ロック状態を変更してブロックを実行します。 ブロックの実行結果を返します。
ロック状態を変更してブロックを実行します。
ブロックの実行結果を返します。
@param mode 変更後の状態を指定します。
通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。 -
PStore
:: DummyMutex # synchronize { . . . } -> object (72904.0) -
与えられたブロックを評価するだけで何もしません。
与えられたブロックを評価するだけで何もしません。 -
MonitorMixin
# mon _ synchronize { . . . } -> object (36907.0) -
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
モニターをロックし、ブロックを実行します。実行後に必ずモニターのロックを解放します。
ブロックの評価値を返り値として返します。
@see MonitorMixin#mon_enter -
Mutex
_ m # mu _ synchronize { . . . } -> object (36907.0) -
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
self のロックを取得し、ブロックを実行します。実行後に必ずロックを解放します。
ブロックで最後に評価した値を返します。 -
Sync
_ m # sync _ synchronize(mode = EX) { . . . } -> object (36907.0) -
ロック状態を変更してブロックを実行します。 ブロックの実行結果を返します。
ロック状態を変更してブロックを実行します。
ブロックの実行結果を返します。
@param mode 変更後の状態を指定します。
通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。 -
Shell
:: ProcessController . block _ output _ synchronize { . . . } -> () (36904.0) -
@todo
@todo -
Etc
:: SC _ SYNCHRONIZED _ IO -> Integer (27901.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Thread
. exclusive { . . . } -> object (18619.0) -
VM グローバルの Mutex をロックし、ブロックを実行します。
VM グローバルの Mutex をロックし、ブロックを実行します。
このクラスメソッドの挙動は 1.8 以前とは違います。
Thread.exclusive は VM グローバルの Mutex の
synchronize を呼び出しているだけで、Thread.exclusive していないスレッドは動きます。
Thread::Mutex や Monitor などの他の排他制御の方法を検討してください。 -
NEWS for Ruby 2
. 0 . 0 (18343.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
NEWS for Ruby 2.0.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 1.9.3 以降の変更
=== 言語仕様の変更
* キーワード引数を追加しました
* %i, %I をシンボルの配列作成のために追加しました。(%w, %W に似ています)
* デフォルトのソースエンコーディングを US-ASCI... -
Thread
:: ConditionVariable (18127.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
スレッドの同期機構の一つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします。スレッド A は現在空いていない
リソースが必要になったので空くまで待つことにしたとします。これはうまくいきません。
なぜなら、スレッド A は排他領域で動いているわけですから、他のスレッドは動くことが
できません。リ... -
Mutex
_ m (18055.0) -
スレッド同期機構である Thread::Mutex のモジュール版です。クラスに Module#include することでそのクラスに Mutex 機能を持たせることができます。 また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
スレッド同期機構である Thread::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)... -
Thread
:: ConditionVariable # broadcast -> self (9637.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"
while (flg)
cv.wait(mutex)
... -
Thread
:: ConditionVariable # signal -> self (9637.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
状態変数を待っているスレッドを1つ再開します。再開された
スレッドは Thread::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.wait(mutex)
...