ライブラリ
クラス
-
DRb
:: DRbServer (12) - Exception (12)
- Fiber (24)
- IO (24)
-
IRB
:: Context (12) - Monitor (42)
- Mutex (8)
-
Net
:: IMAP (48) -
Net
:: IMAP :: ThreadMember (24) -
Rake
:: Application (12) - Thread (441)
-
Thread
:: Backtrace :: Location (84) -
Thread
:: ConditionVariable (36) -
Thread
:: Mutex (70) -
Thread
:: Queue (152) -
Thread
:: SizedQueue (130) - ThreadGroup (48)
- ThreadsWait (42)
- Tracer (12)
-
WEBrick
:: GenericServer (12)
モジュール
- Kernel (16)
- MonitorMixin (12)
-
Sync
_ m (24)
キーワード
- << (24)
- [] (12)
- []= (12)
-
abort
_ on _ exception (12) -
abort
_ on _ exception= (12) -
absolute
_ path (12) - add (12)
-
add
_ trace _ func (12) - alive? (12)
-
all
_ waits (6) - backtrace (12)
-
backtrace
_ locations (36) -
base
_ label (12) - broadcast (12)
- children (12)
- clear (12)
-
client
_ thread (12) -
client
_ thread= (12) - close (20)
- closed? (10)
- deq (24)
- empty? (26)
- enclose (12)
- enclosed? (12)
- enq (24)
- enter (12)
- eof (12)
- eof? (12)
- exit (24)
- fetch (8)
- finished? (6)
-
get
_ thread _ no (12) - group (12)
-
ignore
_ deadlock (4) -
ignore
_ deadlock= (4) - inspect (24)
- join (30)
-
join
_ nowait (6) - key? (12)
- keys (12)
- kill (12)
- label (12)
- length (20)
- lineno (12)
- list (12)
- lock (12)
- locked? (10)
- max (12)
- max= (12)
-
mon
_ enter (18) -
mon
_ exit (6) - name (10)
- name= (10)
-
next
_ wait (6) -
num
_ waiting (12) - owned? (12)
- path (12)
-
pending
_ interrupt? (12) - pop (24)
- priority (12)
- priority= (12)
- push (24)
- raise (12)
-
report
_ on _ exception (9) -
report
_ on _ exception= (9) - resume (12)
- run (12)
-
safe
_ level (7) - seqno (12)
-
set
_ trace _ func (12) - shift (24)
- signal (12)
- size (20)
- sleep (12)
- status (12)
- stop? (12)
-
sync
_ ex _ locker (6) -
sync
_ ex _ locker= (6) -
sync
_ upgrade _ waiting (6) -
sync
_ waiting (6) - synchronize (10)
- terminate (12)
- thread (36)
-
thread
_ variable? (12) -
thread
_ variable _ get (12) -
thread
_ variable _ set (12) - threads (6)
- timeout (16)
-
to
_ s (20) - tokens (12)
- transfer (12)
-
try
_ lock (10) -
uid
_ thread (12) - unlock (12)
- value (12)
- wait (12)
-
wait
_ for _ cond (6) - wakeup (12)
検索結果
先頭5件
-
Thread
# thread _ variable _ get(key) -> object | nil (27186.0) -
引数 key で指定した名前のスレッドローカル変数を返します。
...注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。
例:
Thread.new {
Thread.current.thread_variable_set("foo", "bar") # スレッドローカル
Thread.current......
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) (27168.0) -
引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま す。
...]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、セットした変数は Fiber を切り替えても共通で使える事に注意してく
ださい。
//emlist[例][ruby]{
thr = Thread.new do
Thread.current.thread_variable_set(:cat, 'meow')
Thread.c......urrent.thread_variable_set("dog", 'woof')
end
thr.join # => #<Thread:0x401b3f10 dead>
thr.thread_variables # => [:dog, :cat]
//}
@see Thread#thread_variable_get, Thread#[]... -
Thread
# thread _ variable?(key) -> bool (27150.0) -
引数 key で指定した名前のスレッドローカル変数が存在する場合に true、そ うでない場合に false を返します。
...= 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
# backtrace _ locations(range) -> [Thread :: Backtrace :: Location] | nil (21149.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
...スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します......似ていますが、本メソッドは 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 (21149.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
...スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します......似ていますが、本メソッドは 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
# [](name) -> object | nil (21133.0) -
name に対応したスレッドに固有のデータを取り出します。 name に対応するスレッド固有データがなければ nil を返し ます。
...emlist[例][ruby]{
[
Thread.new { Thread.current["name"] = "A" },
Thread.new { Thread.current[:name] = "B" },
Thread.new { Thread.current["name"] = "C" }
].each do |th|
th.join
puts "#{th.inspect}: #{th[:name]}"
end
# => #<Thread:0x00000002a54220 dead>: A
# => #<Thread:0x00000002a541a8 d......0000002a54130 dead>: C
//}
Thread#[] と Thread#[]= を用いたスレッド固有の変数は
Fiber を切り替えると異なる変数を返す事に注意してください。
//emlist[][ruby]{
def meth(newvalue)
begin
oldvalue = Thread.current[:name]
Thread.current[:name] = newvalu.......resume
p Thread.current[:name]
# => nil if fiber-local
# => 2 if thread-local (The value 2 is leaked to outside of meth method.)
//}
Fiber を切り替えても同じ変数を返したい場合は
Thread#thread_variable_get と Thread#thread_variable_set
を使用してください。
Thread#[]=......ume
p Thread.current[:name]
# => nil if fiber-local
# => 2 if thread-local (The value 2 is leaked to outside of meth method.)
//}
Fiber を切り替えても同じ変数を返したい場合は
Thread#thread_variable_get と Thread#thread_variable_set
を使用してください。
@see Thread#fet... -
Thread
# group -> ThreadGroup (21107.0) -
スレッドが属している ThreadGroup オブジェクトを返します。
...スレッドが属している ThreadGroup オブジェクトを返します。
p Thread.current.group == ThreadGroup::Default
# => true... -
Thread
# status -> String | false | nil (21067.0) -
生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず れかで返します。正常終了したスレッドに対して false、例外によ り終了したスレッドに対して nil を返します。
...て nil を返します。
Thread#alive? が真を返すなら、このメソッドも真です。
例:
a = Thread.new { raise("die now") }
b = Thread.new { Thread.stop }
c = Thread.new { Thread.exit }
d = Thread.new { sleep }
d.kill #=> #<Thread:0x401b3678 aborting>
a.......status #=> nil
b.status #=> "sleep"
c.status #=> false
d.status #=> "aborting"
Thread.current.status #=> "run"
@see Thread#alive?, Thread#stop?... -
Thread
# report _ on _ exception -> bool (21055.0) -
真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
...ルトはスレッド作成時の Thread.report_on_exception です。
@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。
//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception......true
a.run
# => #<Thread:0x00007fc3f48c7908@(irb):1 run> terminated with exception (report_on_exception is true):
# Traceback (most recent call last):
# (irb):1:in `block in irb_binding': unhandled exception
# #<Thread:0x00007fc3f48c7908@(irb):1 dead>
b = Thread.new{ Thread.stop; raise }
b.......report_on_exception = false
b.run # => #<Thread:0x00007fc3f48aefc0@(irb):4 dead>
//}
@see Thread.report_on_exception...