ライブラリ
クラス
- Exception (11)
- Fiber (11)
- IO (22)
- Monitor (3)
- Mutex (2)
-
Net
:: IMAP (44) -
Net
:: IMAP :: ThreadMember (22) - PStore (11)
-
Rake
:: Application (11) - Shell (8)
- Thread (327)
-
Thread
:: Backtrace :: Location (77) -
Thread
:: ConditionVariable (44) -
Thread
:: Mutex (9) -
Thread
:: Queue (33) -
Thread
:: SizedQueue (83) - ThreadGroup (11)
- ThreadsWait (36)
- Tracer (33)
- WIN32OLE (11)
-
YAML
:: Store (16)
モジュール
キーワード
-
$ SAFE (7) -
CLOCK
_ THREAD _ CPUTIME _ ID (11) -
CP
_ THREAD _ ACP (11) -
CS
_ GNU _ LIBPTHREAD _ VERSION (11) -
CS
_ POSIX _ V7 _ THREADS _ CFLAGS (11) -
CS
_ POSIX _ V7 _ THREADS _ LDFLAGS (11) - ConditionVariable (22)
- Location (11)
-
MUTEX
_ FOR _ THREAD _ EXCLUSIVE (5) - MultiTask (11)
- Ruby用語集 (11)
-
SC
_ 2 _ LOCALEDEF (11) -
SC
_ 2 _ PBS _ LOCATE (11) -
SC
_ AIO _ LISTIO _ MAX (11) -
SC
_ AIO _ PRIO _ DELTA _ MAX (11) -
SC
_ BC _ SCALE _ MAX (11) -
SC
_ CHILD _ MAX (11) -
SC
_ CLK _ TCK (11) -
SC
_ CLOCK _ SELECTION (11) -
SC
_ COLL _ WEIGHTS _ MAX (11) -
SC
_ DELAYTIMER _ MAX (11) -
SC
_ JOB _ CONTROL (11) -
SC
_ LINE _ MAX (11) -
SC
_ LOGIN _ NAME _ MAX (11) -
SC
_ MAPPED _ FILES (11) -
SC
_ MEMLOCK (11) -
SC
_ MEMLOCK _ RANGE (11) -
SC
_ MONOTONIC _ CLOCK (11) -
SC
_ NPROCESSORS _ ONLN (11) -
SC
_ PRIORITY _ SCHEDULING (11) -
SC
_ READER _ WRITER _ LOCKS (11) -
SC
_ REALTIME _ SIGNALS (11) -
SC
_ SEM _ VALUE _ MAX (11) -
SC
_ SHELL (11) -
SC
_ SPIN _ LOCKS (11) -
SC
_ SS _ REPL _ MAX (11) -
SC
_ SYMLOOP _ MAX (11) -
SC
_ THREAD _ PRIORITY _ SCHEDULING (11) -
SC
_ TRACE _ EVENT _ FILTER (11) -
SC
_ TRACE _ LOG (11) -
SC
_ V6 _ ILP32 _ OFF32 (11) -
SC
_ V6 _ ILP32 _ OFFBIG (11) -
SC
_ V6 _ LP64 _ OFF64 (11) -
SC
_ V6 _ LPBIG _ OFFBIG (11) -
SC
_ V7 _ ILP32 _ OFF32 (11) -
SC
_ V7 _ ILP32 _ OFFBIG (11) -
SC
_ V7 _ LP64 _ OFF64 (11) -
SC
_ V7 _ LPBIG _ OFFBIG (11) -
SC
_ XOPEN _ REALTIME (11) -
SC
_ XOPEN _ REALTIME _ THREADS (11) - SizedQueue (11)
- WIN32OLE (11)
- [] (11)
-
abort
_ on _ exception (22) -
absolute
_ path (11) - alive? (11)
-
all
_ waits (18) - application= (11)
- backtrace (11)
-
backtrace
_ locations (33) -
base
_ label (11) - broadcast (11)
-
caller
_ locations (22) - children (11)
-
client
_ thread (11) -
client
_ thread= (11) -
clock
_ gettime (11) - close (9)
-
count
_ tdata _ objects (11) - debug (11)
-
debug
_ output _ synchronize (4) -
debug
_ output _ unlock (4) - deq (11)
-
display
_ thread _ id (11) -
display
_ thread _ id= (11) -
display
_ thread _ id? (11) - dump (22)
- empty? (13)
- enq (10)
- eof (11)
- eof? (11)
- exclusive (11)
- exit (11)
- fetch (7)
- finished? (6)
-
handle
_ interrupt (11) -
ignore
_ deadlock (3) -
ignore
_ deadlock= (3) - inspect (11)
- irb (11)
- join (22)
- kill (22)
- label (11)
- length (18)
- lineno (11)
- list (22)
- new (38)
-
next
_ wait (6) - pass (11)
- path (11)
-
pending
_ interrupt? (22) -
pipeline
_ r (22) -
pipeline
_ rw (22) -
pipeline
_ start (22) -
pipeline
_ w (22) - pop (11)
- priority= (11)
- push (10)
-
rb
_ thread _ abort _ exc (11) -
rb
_ thread _ abort _ exc _ set (11) -
rb
_ thread _ alive _ p (11) -
rb
_ thread _ alloc (11) -
rb
_ thread _ alone (11) -
rb
_ thread _ aref (11) -
rb
_ thread _ aset (11) -
rb
_ thread _ check (11) -
rb
_ thread _ cleanup (11) -
rb
_ thread _ critical _ get (11) -
rb
_ thread _ critical _ set (11) -
rb
_ thread _ current (11) -
rb
_ thread _ deadlock (11) -
rb
_ thread _ exit (11) -
rb
_ thread _ fd _ close (11) -
rb
_ thread _ fd _ writable (11) -
rb
_ thread _ initialize (11) -
rb
_ thread _ inspect (11) -
rb
_ thread _ join (11) -
rb
_ thread _ join _ m (11) -
rb
_ thread _ key _ p (11) -
rb
_ thread _ keys (11) -
rb
_ thread _ kill (11) -
rb
_ thread _ list (11) -
rb
_ thread _ local _ aref (11) -
rb
_ thread _ local _ aset (11) -
rb
_ thread _ main (11) -
rb
_ thread _ pass (11) -
rb
_ thread _ polling (1) -
rb
_ thread _ priority (11) -
rb
_ thread _ priority _ set (11) -
rb
_ thread _ raise (11) -
rb
_ thread _ raise _ m (11) -
rb
_ thread _ s _ abort _ exc (11) -
rb
_ thread _ s _ abort _ exc _ set (11) -
rb
_ thread _ s _ kill (11) -
rb
_ thread _ s _ new (11) -
rb
_ thread _ safe _ level (11) -
rb
_ thread _ schedule (11) -
rb
_ thread _ select (1) -
rb
_ thread _ signal _ raise (11) -
rb
_ thread _ sleep (11) -
rb
_ thread _ sleep _ forever (11) -
rb
_ thread _ start (11) -
rb
_ thread _ start _ 0 (11) -
rb
_ thread _ status (11) -
rb
_ thread _ stop (11) -
rb
_ thread _ stop _ p (11) -
rb
_ thread _ trap _ eval (11) -
rb
_ thread _ value (11) -
rb
_ thread _ wait _ for (11) -
rb
_ thread _ yield (11) -
report
_ on _ exception (16) - resume (11)
-
safe
_ level (7) - seqno (11)
-
set
_ trace _ func (11) - shift (22)
- signal (11)
- size (18)
- sleep (33)
- status (11)
- stop (11)
-
sync
_ ex _ locker (6) - terminate (11)
-
thgroup
_ add (11) -
thread
_ keys _ i (11) -
thread
_ variable? (11) -
thread
_ variable _ get (11) -
thread
_ variable _ set (11) - timeout (41)
-
to
_ s (11) -
uid
_ thread (11) - wait (11)
-
wait
_ for _ cond (3) - セキュリティモデル (11)
検索結果
先頭5件
-
Thread
# thread _ variable _ get(key) -> object | nil (27385.0) -
引数 key で指定した名前のスレッドローカル変数を返します。
...注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。
例:
Thread.new {
Thread.current.thread_variable_set("foo", "bar") # スレッドローカル
Thread.current......Fiber ローカル
Fiber.new {
Fiber.yield [
Thread.current.thread_variable_get("foo"), # スレッドローカル
Thread.current["foo"], # Fiber ローカル
]
}.resume
}.join.value # => ['bar', nil]
この例の "bar" は Thread#thread_v......ariable_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) (27367.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
# thread _ variable?(key) -> bool (27349.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
:: MUTEX _ FOR _ THREAD _ EXCLUSIVE -> Mutex (27317.0) -
Thread.exclusive用のMutexオブジェクトです。 (private constant です。)
...
Thread.exclusive用のMutexオブジェクトです。......
Thread.exclusive用のMutexオブジェクトです。
(private constant です。)... -
irb (26156.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
...irb は Interactive Ruby の略です。
irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
=== irb の使い方
Ruby さえ知っていれば irb を使うのは簡単です。
irb コマンドを実行すると、以下のようなプロン......。
$ irb
irb(main):001:0>
あとは Ruby の式を入力するだけで、その式が実行され、結果が表示されます。
irb(main):001:0> 1+2
3
irb(main):002:0> class Foo
irb(main):003:1> def foo
irb(main):004:2> print 1
irb(main):005:2> end
irb(main):006:1>......@(irb):2>
irb(main):002:0> irb
>
=== irb の使用例
irb のいろいろな使用例を以下に示します。
$ irb
irb(main):001:0> irb # サブirbの立ちあげ
irb#1(main):001:0> jobs # サブirbのリスト
#0->irb on main (#<Thread:0... -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (23250.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
...止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Thread::Mutex オブジェクトを指定します。
@param timeout スリ......ます。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続けます。
@see Thread::ConditionVariable#signal, Thread::ConditionVariable#broadcast... -
Thread
:: ConditionVariable # signal -> self (23228.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは 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)
end
puts "a2"
}
}
}
Thread.start {
mutex.synchronize {
flg = false
cv.signal
}
}
sleep 1
# => a1
# => a1
# => a1
# => a2
//}... -
Thread
:: ConditionVariable (23054.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします......状況を解決するのが Condition Variable です。
スレッド a で条件(リソースが空いているかなど)が満たされるまで wait メソッドで
スレッドを止めます。他のスレッド b において条件が満たされたなら signal
メソッドでスレッド a......= Mutex.new
cv = ConditionVariable.new
a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(mutex)
end
...
}
}
b = Thread.start {
mutex.synchronize {
# 上の条... -
Thread
# backtrace _ locations(range) -> [Thread :: Backtrace :: Location] | nil (21548.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 (21548.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
. kill(thread) -> Thread (21464.0) -
指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。
...指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。
@param thread 終了したい Thread オブジェクトを指定します。
th = Thread.new do
end
p Thread.kill(th) #=> #<Thread:0x40221bc8 dead>... -
Net
:: IMAP # thread(algorithm , search _ keys , charset) -> [Net :: IMAP :: ThreadMember] (21429.0) -
THREADコマンドを送り、メールボックスを検索した結果を スレッド形式の木構造で返します。
...THREADコマンドを送り、メールボックスを検索した結果を
スレッド形式の木構造で返します。
THREAD コマンドは 5256 で定義されています。
詳しくはそちらを参照してください。
このコマンドは Net::IMAP#capability の返り値を見......ることで
利用可能かどうか判断できます。
algorithm は木構造を決定するためのアルゴリズムを指定します。
以下の2つが利用可能です。
* "ORDEREDSUBJECT" subjectを使って平坦に区切るだけ
* "REFERENCES" どのメッセージに返事を......渡します。
Net::IMAP#search と同等です。
@param algorithm スレッド構造構築アルゴリズム名(文字列)
@param search_key 検索条件(文字列配列)
@param charset 検索条件の解釈に用いるCHARSET名(文字列)
@see Net::IMAP::ThreadMember, Net::IMAP#uid_thread... -
Thread
. pending _ interrupt?(error = nil) -> bool (21378.0) -
非同期割り込みのキューが空かどうかを返します。
...ます。
Thread.handle_interrupt は非同期割り込みの発生を延期させるのに使
用しますが、本メソッドは任意の非同期割り込みが存在するかどうかを確認す
るのに使用します。
本メソッドが true を返した場合、Thread.handle_interrupt......をただちに発生させる。
def Thread.kick_interrupt_immediately
Thread.handle_interrupt(Object => :immediate) {
Thread.pass
}
end
=== 使い方
th = Thread.new{
Thread.handle_interrupt(RuntimeError => :on_blocking){
while true
...
# ここま......
if Thread.pending_interrupt?
Thread.handle_interrupt(Object => :immediate){}
end
...
end
}
}
...
th.raise # スレッド停止。
この例は以下のように記述する事もできます。
flag = true
th = Thread.new{
Thread.handle_in...