ライブラリ
- ビルトイン (1683)
クラス
- Exception (12)
- Fiber (16)
- IO (120)
- Mutex (10)
- Thread (668)
-
Thread
:: Backtrace :: Location (84) -
Thread
:: ConditionVariable (40) -
Thread
:: Mutex (80) -
Thread
:: Queue (144) -
Thread
:: SizedQueue (124) - ThreadGroup (72)
- TracePoint (12)
キーワード
-
$ -d (12) -
$ DEBUG (12) -
$ SAFE (7) - << (20)
-
CLOCK
_ THREAD _ CPUTIME _ ID (12) - ClosedQueueError (10)
- ConditionVariable (20)
- DEBUG (12)
- DEBUG= (12)
- Default (12)
- Enumerator (12)
- Fiber (12)
- Location (12)
-
MUTEX
_ FOR _ THREAD _ EXCLUSIVE (5) - Mutex (20)
- Queue (20)
- SizedQueue (20)
- ThreadError (12)
- ThreadGroup (12)
- [] (12)
- []= (12)
-
abort
_ on _ exception (24) -
abort
_ on _ exception= (24) -
absolute
_ path (12) - add (12)
-
add
_ trace _ func (12) - alive? (12)
- backtrace (12)
-
backtrace
_ locations (36) -
base
_ label (12) - broadcast (10)
-
caller
_ locations (24) - clear (10)
-
clock
_ gettime (12) - close (20)
- closed? (10)
- current (12)
- deq (20)
- detach (12)
- dump (24)
- empty? (18)
- enclose (12)
- enclosed? (12)
- enq (20)
- eof (12)
- eof? (12)
- exclusive (12)
- exit (24)
- fetch (8)
- fork (12)
- group (12)
-
handle
_ interrupt (12) -
ignore
_ deadlock (4) -
ignore
_ deadlock= (4) - inspect (24)
- join (24)
- key? (12)
- keys (12)
- kill (24)
- label (12)
- length (18)
- lineno (12)
- list (24)
- lock (12)
- locked? (10)
- main (12)
- max (10)
- max= (10)
- name (10)
- name= (10)
- new (82)
-
num
_ waiting (10) - owned? (12)
- pass (12)
- path (12)
-
pending
_ interrupt? (24) - pipe (96)
- pop (20)
- priority (12)
- priority= (12)
- push (20)
- raise (12)
-
report
_ on _ exception (18) -
report
_ on _ exception= (18) - resume (12)
- run (12)
-
safe
_ level (7) -
set
_ trace _ func (12) - shift (20)
- signal (10)
- size (18)
- sleep (36)
- start (12)
- status (12)
- stop (12)
- stop? (12)
- synchronize (10)
- terminate (12)
-
thread
_ variable? (12) -
thread
_ variable _ get (12) -
thread
_ variable _ set (12) -
to
_ s (20) - transfer (4)
-
try
_ lock (10) - unlock (12)
- value (12)
- wait (10)
- wakeup (12)
検索結果
先頭5件
-
Thread (46112.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
...スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、......だ
しその例外で終了するスレッドを Thread#join で待っている他の
スレッドがある場合、その待っているスレッドに対して、同じ例外が再度
発生します。
begin
t = Thread.new do
Thread.pass # メインスレッドが確実にjoinす......ン 付きで起動した場合も同様。
(オプションの詳細に関してはspec/rubycmd を参照)
* Thread.abort_on_exception でフラグを設定する。
* Thread#abort_on_exception で指定
したスレッドのフラグを設定する。
上記3つのいずれかが設... -
Thread
# thread _ variable _ get(key) -> object | nil (35185.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) (35167.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 (35149.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
:: MUTEX _ FOR _ THREAD _ EXCLUSIVE -> Mutex (35117.0) -
Thread.exclusive用のMutexオブジェクトです。
...
Thread.exclusive用のMutexオブジェクトです。......
Thread.exclusive用のMutexオブジェクトです。
(private constant です。)... -
Thread
. kill(thread) -> Thread (29264.0) -
指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。
...指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。
@param thread 終了したい Thread オブジェクトを指定します。
th = Thread.new do
end
p Thread.kill(th) #=> #<Thread:0x40221bc8 dead>... -
Thread
# backtrace _ locations(range) -> [Thread :: Backtrace :: Location] | nil (29148.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 (29148.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 (29132.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...