種類
- インスタンスメソッド (303)
- 特異メソッド (107)
- 定数 (5)
ライブラリ
- ビルトイン (415)
キーワード
- DEBUG= (11)
-
MUTEX
_ FOR _ THREAD _ EXCLUSIVE (5) - [] (11)
- []= (11)
-
abort
_ on _ exception (22) - alive? (11)
- backtrace (11)
-
backtrace
_ locations (22) - exclusive (11)
- exit (11)
- fetch (7)
-
handle
_ interrupt (11) -
ignore
_ deadlock (3) -
ignore
_ deadlock= (3) - join (22)
- key? (11)
- keys (11)
- kill (22)
- list (11)
- pass (11)
-
pending
_ interrupt? (22) - priority= (11)
-
report
_ on _ exception (16) - run (11)
-
safe
_ level (7) -
set
_ trace _ func (11) - status (11)
- stop (11)
- stop? (11)
- terminate (11)
-
thread
_ variable? (11) -
thread
_ variable _ get (11) -
thread
_ variable _ set (11) - value (11)
- wakeup (11)
検索結果
先頭5件
-
Thread
# backtrace _ locations(range) -> [Thread :: Backtrace :: Location] | nil (6201.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
...クトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得する......el.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。
//emlist[例][ruby]{
thread = Thread.new { sleep 1 }
thread.run
thread.backtrace_locations # => ["/path/to/test.rb:1:in `sleep'", "/path/to/test.rb:1:in `block in <main>'"]
//}
@see Thread......::Backtrace::Location... -
Thread
# backtrace _ locations(start = 0 , length = nil) -> [Thread :: Backtrace :: Location] | nil (6201.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
...クトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得する......el.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。
//emlist[例][ruby]{
thread = Thread.new { sleep 1 }
thread.run
thread.backtrace_locations # => ["/path/to/test.rb:1:in `sleep'", "/path/to/test.rb:1:in `block in <main>'"]
//}
@see Thread......::Backtrace::Location... -
Thread
# alive? -> bool (6101.0) -
スレッドが「生きている」時、true を返します。
...」時、true を返します。
例:
thr = Thread.new { }
thr.join # => #<Thread:0x401b3fb0 dead>
Thread.current.alive? # => true
thr.alive? # => false
Thread#status が真を返すなら、このメソッドも真です。
@see Thread#status, Thread#stop?... -
Thread
# ignore _ deadlock -> bool (6101.0) -
デッドロック検知を無視する機能のon/offを返します。
...デッドロック検知を無視する機能のon/offを返します。
デフォルト値はfalseで、デッドロックが検知されます。
@see Thread#ignore_deadlock=... -
Thread
# ignore _ deadlock=(bool) (6101.0) -
デッドロック検知を無視する機能をon/offします。デフォルト値はfalseです。
...はfalseです。
trueを渡すとデッドロックを検知しなくなります。
//emlist[][ruby]{
Thread.ignore_deadlock = true
queue = Thread::Queue.new
trap(:SIGUSR1){queue.push "Received signal"}
# ignore_deadlockがfalseだとエラーが発生する
puts queue.pop
//}
@see Thread#ign......ore_deadlock... -
Thread
# safe _ level -> Integer (6101.0) -
self のセーフレベルを返します。カレントスレッドの safe_level は、$SAFE と同じです。
...self のセーフレベルを返します。カレントスレッドの
safe_level は、$SAFE と同じです。
Ruby 2.6 から$SAFEがプロセスグローバルになったため、このメソッドは obsolete になりました。
セーフレベルについてはspec/safelevelを参照し......てください。
//emlist[例][ruby]{
thr = Thread.new { $SAFE = 1; sleep }
Thread.current.safe_level # => 0
thr.safe_level # => 1
//}......ッドは obsolete になりました。
単純に $SAFE をチェックしてください。
セーフレベルについてはspec/safelevelを参照してください。
//emlist[例][ruby]{
thr = Thread.new { $SAFE = 1; sleep }
Thread.current.safe_level # => 0
thr.safe_level # =>... -
Thread
# thread _ variable?(key) -> bool (6101.0) -
引数 key で指定した名前のスレッドローカル変数が存在する場合に true、そ うでない場合に false を返します。
...ない場合に false を返します。
@param key 変数名を String か Symbol で指定します。
me = Thread.current
me.thread_variable_set(:oliver, "a")
me.thread_variable?(:oliver) # => true
me.thread_variable?(:stanley) # => false
[注意]: Thread#[] でセットし......たローカル変数(Fiber ローカル変数)が
対象ではない事に注意してください。
@see Thread#thread_variable_get, Thread#[]... -
Thread
# thread _ variable _ get(key) -> object | nil (6101.0) -
引数 key で指定した名前のスレッドローカル変数を返します。
...注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。
例:
Thread.new {
Thread.current.thread_variable_set("foo", "bar") # スレッドローカル
Thread.current......yield [
Thread.current.thread_variable_get("foo"), # スレッドローカル
Thread.current["foo"], # Fiber ローカル
]
}.resume
}.join.value # => ['bar', nil]
この例の "bar" は Thread#thread_variable_get により得られ
た値で、nil......はThread#[] により得られた値です。
@see Thread#thread_variable_set, Thread#[]
@see https://magazine.rubyist.net/articles/0041/0041-200Special-note.html... -
Thread
# thread _ variable _ set(key , value) (6101.0) -
引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま す。
...lue をセットしま
す。
[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、セットした変数は Fiber を切り替えても共通で使える事に注意してく
ださい。
//emlist[例][ruby]{
thr = Thread.new do
Thread.current.thread......_variable_set(:cat, 'meow')
Thread.current.thread_variable_set("dog", 'woof')
end
thr.join # => #<Thread:0x401b3f10 dead>
thr.thread_variables # => [:dog, :cat]
//}
@see Thread#thread_variable_get, Thread#[]... -
Thread
# value -> object (6101.0) -
スレッド self が終了するまで待ち(Thread#join と同じ)、 そのスレッドのブロックが返した値を返します。スレッド実行中に例外が 発生した場合には、その例外を再発生させます。
...スレッド self が終了するまで待ち(Thread#join と同じ)、
そのスレッドのブロックが返した値を返します。スレッド実行中に例外が
発生した場合には、その例外を再発生させます。
スレッドが Thread#kill によって終了した場合......を待ち結果を出力する例です。
threads = []
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.each {|t| p t.value}
最後の行で、待ち合わせを......行っていることがわかりにくいと思うなら以下
のように書くこともできます。
threads.each {|t| p t.join.value}... -
Thread
. exclusive { . . . } -> object (6101.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 などの他の排他制御の方法を検...