種類
ライブラリ
- ビルトイン (1189)
- digest (10)
- drb (55)
-
drb
/ extserv (11) - fiber (8)
- fiddle (22)
-
irb
/ cmd / subirb (22) -
irb
/ context (11) - monitor (174)
-
net
/ imap (66) - open3 (132)
- pstore (11)
- readline (11)
-
rinda
/ tuplespace (11) - socket (33)
- thread (34)
- thwait (60)
- timeout (22)
- tracer (22)
- uri (14)
- win32ole (11)
-
yaml
/ store (16)
クラス
-
DRb
:: DRbServer (22) -
DRb
:: ExtServ (11) - Fiber (22)
- IO (14)
-
IRB
:: Context (11) -
IRB
:: ExtendCommand :: Foreground (11) -
IRB
:: ExtendCommand :: Kill (11) - Monitor (57)
-
MonitorMixin
:: ConditionVariable (55) - Mutex (4)
-
Net
:: IMAP (55) -
Net
:: IMAP :: ThreadMember (11) - PStore (11)
-
Rinda
:: TupleSpace (11) - Socket (33)
- Thread (498)
-
Thread
:: ConditionVariable (33) -
Thread
:: Mutex (45) -
Thread
:: Queue (77) -
Thread
:: SizedQueue (75) - ThreadGroup (44)
- ThreadsWait (60)
- TracePoint (11)
- Tracer (22)
- WIN32OLE (11)
-
YAML
:: Store (16)
モジュール
キーワード
-
$ ! (11) -
$ & (11) -
$ & # 39; (11) -
$ + (11) -
$ -d (11) -
$ . (11) -
$ 1 (11) -
$ 10 (11) -
$ 11 (11) -
$ 2 (11) -
$ 3 (11) -
$ 4 (11) -
$ 5 (11) -
$ 6 (11) -
$ 7 (11) -
$ 8 (11) -
$ 9 (11) -
$ ? (11) -
$ @ (11) -
$ DEBUG (11) -
$ SAFE (5) -
$ _ (11) -
$ ` (11) -
$ ~ (11) -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - << (22)
-
CP
_ THREAD _ ACP (11) - ConditionVariable (11)
- DEBUG (11)
- DEBUG= (11)
- Default (11)
- Digest (10)
- MonitorMixin (11)
-
NEWS for Ruby 2
. 0 . 0 (11) -
NEWS for Ruby 2
. 2 . 0 (10) -
NEWS for Ruby 2
. 3 . 0 (9) -
NEWS for Ruby 2
. 4 . 0 (8) -
NEWS for Ruby 2
. 5 . 0 (7) -
NEWS for Ruby 2
. 6 . 0 (6) -
NEWS for Ruby 2
. 7 . 0 (5) - Ruby用語集 (11)
- Thread (11)
- ThreadGroup (11)
- Win32ネイティブ版Rubyの互換性問題 (11)
- [] (11)
-
abort
_ on _ exception (22) -
accept
_ loop (11) - add (11)
-
add
_ response _ handler (22) -
add
_ trace _ func (11) - alive? (11)
-
all
_ waits (18) - backtrace (11)
-
backtrace
_ locations (22) - broadcast (22)
- children (11)
- close (9)
- current (11)
-
current
_ server (11) - debug (11)
- deq (22)
- detach (11)
-
display
_ thread _ id (11) -
display
_ thread _ id? (11) - drb (11)
- empty? (6)
- enclose (11)
- encode (7)
- enq (22)
- enter (11)
- escape (7)
- exclusive (11)
- execute (22)
- exit (33)
- fail (33)
- fetch (7)
- finished? (6)
- fork (11)
- group (11)
-
handle
_ interrupt (11) - idle (11)
- irb (11)
- join (28)
-
join
_ nowait (6) - key? (11)
- keys (11)
- kill (22)
-
last
_ error (11) -
last
_ status (7) - list (22)
- lock (9)
- main (11)
-
mon
_ check _ owner (5) -
mon
_ enter (16) -
mon
_ exit (16) -
mon
_ owned? (12) -
mon
_ try _ enter (16) - monitor (11)
- new (77)
-
next
_ wait (6) -
num
_ waiting (11) - owned? (9)
- pass (11)
-
pending
_ interrupt? (11) -
pipeline
_ r (22) -
pipeline
_ rw (22) -
pipeline
_ w (22) - pop (22)
- popen2 (22)
- popen2e (22)
- popen3 (22)
- pread (7)
- priority (11)
- priority= (11)
- push (22)
- pwrite (7)
- raise (44)
- readline (11)
-
report
_ on _ exception (16) -
report
_ on _ exception= (8) - resume (11)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 4 feature (11) -
ruby 1
. 8 . 5 feature (11) -
ruby 1
. 9 feature (11) - run (11)
-
safe
_ level (5) -
set
_ trace _ func (11) - shift (22)
- signal (22)
- sleep (33)
- start (11)
-
start
_ service (11) - status (11)
- stop (11)
- stop? (11)
-
stop
_ service (11) - synchronize (11)
-
tcp
_ server _ loop (22) - terminate (11)
- thread (44)
-
thread
_ variable? (11) -
thread
_ variable _ get (11) - threads (6)
- throw (11)
- timeout (22)
- transfer (11)
-
try
_ enter (5) -
try
_ mon _ enter (16) -
uid
_ thread (11) - unlock (9)
- value (11)
- wait (22)
-
wait
_ until (11) -
wait
_ while (11) - wakeup (11)
-
win32
_ last _ error (11) - セキュリティモデル (11)
- 変数と定数 (11)
- 正規表現 (11)
検索結果
先頭5件
-
スレッド (18311.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
...スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装......は Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは......より、いずれかのスレッドが例外によって終
了した時に、インタプリタ全体を中断させるように指定することができま
す。
* 組み込み変数 $DEBUG を真に設定する(デバッグモード)
ruby インタプリタを -d オプション 付き... -
Thread
# priority -> Integer (9382.0) -
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。
...
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。
メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの
priority を引き継ぎます。
@param val スレッドの優先度を指定......に依存します。
//emlist[例][ruby]{
Thread.current.priority # => 0
count1 = count2 = 0
a = Thread.new do
loop { count1 += 1 }
end
a.priority = -1
b = Thread.new do
loop { count2 += 1 }
end
b.priority = -2
count1 = count2 = 0 # reset
sleep 1 # => 1
count1 # => 138... -
DRb
:: DRbServer # thread -> Thread (9334.0) -
サーバのメインスレッドを返します。
...サーバのメインスレッドを返します。
このスレッドはクライアントからの接続を受け付けるスレッドであって、
クライアントへの応答をするスレッドではありません。... -
Net
:: IMAP :: ThreadMember # children -> [Net :: IMAP :: ThreadMember] (9316.0) -
スレッドの木構造における自身の下位の部分を返します。
...スレッドの木構造における自身の下位の部分を返します。... -
Thread
# priority=(val) (9282.0) -
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。
...
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。
メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの
priority を引き継ぎます。
@param val スレッドの優先度を指定......に依存します。
//emlist[例][ruby]{
Thread.current.priority # => 0
count1 = count2 = 0
a = Thread.new do
loop { count1 += 1 }
end
a.priority = -1
b = Thread.new do
loop { count2 += 1 }
end
b.priority = -2
count1 = count2 = 0 # reset
sleep 1 # => 1
count1 # => 138... -
Thread
. report _ on _ exception -> bool (9270.0) -
真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
...のスレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトは false です。
Thread.new { 1.times { raise } }
は $stderr に以下のように出力します:
#<Thread:...> terminated with exception (report_on_exception is true):......Traceback (most recent call last):
2: from -e:1:in `block in <main>'
1: from -e:1:in `times'
これによってスレッドのエラーを早期に捕捉できるようになります。
いくつかのケースでは、この出力を望まないかもしれません。
出......近い場所で rescue して、
その例外でスレッドが終了しないようにするのがより良い方法です。
* Thread#join や Thread#value でそのスレッドの終了を待つことが保証できるなら、
スレッド開始時に Thread.current.report_on_exception =......スレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトは true です。
Thread.new { 1.times { raise } }
は $stderr に以下のように出力します:
#<Thread:...> terminated with exception (report_on_exception is true):
Tr......aceback (most recent call last):
2: from -e:1:in `block in <main>'
1: from -e:1:in `times'
これによってスレッドのエラーを早期に捕捉できるようになります。
いくつかのケースでは、この出力を望まないかもしれません。
出力を... -
Thread
# thread _ variable _ get(key) -> object | nil (9240.0) -
引数 key で指定した名前のスレッドローカル変数を返します。
...名前のスレッドローカル変数を返します。
[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。
例:
Thread.new {
Thread.current.thread_variable_set......("foo", "bar") # スレッドローカル
Thread.current["foo"] = "bar" # Fiber ローカル
Fiber.new {
Fiber.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.htm... -
Thread
. current -> Thread (9232.0) -
現在実行中のスレッド(カレントスレッド)を返します。
...現在実行中のスレッド(カレントスレッド)を返します。
p Thread.current #=> #<Thread:0x4022e6fc run>... -
Readline
. # readline(prompt = "" , add _ hist = false) -> String | nil (9230.0) -
prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。
...prompt を出力し、ユーザからのキー入力を待ちます。
エンターキーの押下などでユーザが文字列を入力し終えると、
入力した文字列を返します。
このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します......はスレッドに対応しています。
入力待ち状態のときはスレッドコンテキストの切替えが発生します。
入力時には行内編集が可能で、vi モードと Emacs モードが用意されています。
デフォルトは Emacs モードです。
@param prompt...... ruby インタプリタが終了し、端末状態を復帰しません。
これを回避するための例を2つ挙げます。
例: ^CによるInterrupt例外を捕捉して、端末状態を復帰する。
require 'readline'
stty_save = `stty -g`.chomp
begin
while buf = Readline.r... -
Thread
# report _ on _ exception -> bool (9228.0) -
真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
...のスレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトはスレッド作成時の Thread.report_on_exception です。
@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true......st[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
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_bindin......g': 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...