ライブラリ
クラス
-
DRb
:: DRbServer (11) - IO (14)
-
IRB
:: Context (11) -
Net
:: IMAP (22) -
Net
:: IMAP :: ThreadMember (11) - PStore (11)
- Thread (550)
-
Thread
:: ConditionVariable (33) -
Thread
:: Mutex (45) -
Thread
:: Queue (77) -
Thread
:: SizedQueue (75) - ThreadGroup (44)
- ThreadsWait (60)
- Tracer (33)
- WIN32OLE (11)
-
YAML
:: Store (8)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - << (22)
-
CP
_ THREAD _ ACP (11) - ConditionVariable (11)
- DEBUG (11)
- DEBUG= (11)
- Default (11)
- ErrNoWaitingThread (6)
-
NEWS for Ruby 2
. 2 . 0 (10) -
NEWS for Ruby 2
. 3 . 0 (9) -
NEWS for Ruby 2
. 5 . 0 (7) -
NEWS for Ruby 2
. 6 . 0 (6) - Queue (11)
- Thread (11)
- ThreadError (11)
- ThreadGroup (11)
- ThreadMember (11)
- ThreadsWait (6)
- [] (11)
- []= (11)
-
abort
_ on _ exception (22) -
abort
_ on _ exception= (22) - add (11)
-
add
_ trace _ func (11) - alive? (11)
-
all
_ waits (18) - backtrace (11)
-
backtrace
_ locations (22) - broadcast (11)
- children (11)
- close (9)
- current (11)
- deq (22)
- detach (11)
-
display
_ thread _ id (11) -
display
_ thread _ id= (11) -
display
_ thread _ id? (11) - empty? (6)
- enclose (11)
- enq (22)
- exclusive (11)
- exit (22)
- fetch (7)
- finished? (6)
- fork (11)
- group (11)
-
handle
_ interrupt (11) - join (28)
-
join
_ nowait (6) - key? (11)
- keys (11)
- kill (22)
- list (22)
- lock (9)
- main (11)
- new (36)
-
next
_ wait (6) -
num
_ waiting (11) - owned? (9)
- pass (11)
-
pending
_ interrupt? (11) -
pipeline
_ r (22) -
pipeline
_ rw (22) -
pipeline
_ w (11) - pop (22)
- popen2 (11)
- popen2e (11)
- popen3 (22)
- pread (7)
- priority (11)
- priority= (11)
- push (22)
- pwrite (7)
- raise (11)
-
rb
_ gc _ mark _ threads (11) -
rb
_ thread _ alone (11) -
rb
_ thread _ current (11) -
rb
_ thread _ main (11) -
rb
_ thread _ restore _ context (11) -
rb
_ thread _ run (11) -
rb
_ thread _ save _ context (11) -
rb
_ thread _ schedule (11) -
rb
_ thread _ select (1) -
rb
_ thread _ start _ timer (11) -
rb
_ thread _ stop (11) -
rb
_ thread _ stop _ timer (11) -
rb
_ thread _ wait _ fd (11) -
rb
_ thread _ wait _ for (11) -
rb
_ thread _ wakeup (11) - readline (11)
-
report
_ on _ exception (16) -
report
_ on _ exception= (16) -
rinda
/ rinda (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 (11)
- sleep (9)
- start (11)
- status (11)
- stop (11)
- stop? (11)
- synchronize (9)
- terminate (11)
- thread (46)
-
thread
_ variable? (11) -
thread
_ variable _ get (11) -
thread
_ variable _ set (11) - threads (6)
- timeout (19)
-
uid
_ thread (11) - unlock (9)
- value (11)
- wait (11)
- wakeup (11)
検索結果
先頭5件
-
スレッド (18305.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
...スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装......おり、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ラ......リから GVL を操作できるので、複数のスレッドを
同時に実行するような拡張ライブラリは作成可能です。
=== スケジューリング
Ruby のスレッドスケジューリングはネイティブスレッドのそれを利用しています。
よって詳細... -
Thread
# thread _ variable _ get(key) -> object | nil (9128.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.h... -
Thread
# thread _ variable?(key) -> bool (9116.0) -
引数 key で指定した名前のスレッドローカル変数が存在する場合に true、そ うでない場合に false を返します。
...スレッドローカル変数が存在する場合に true、そ
うでない場合に 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 _ set(key , value) (9116.0) -
引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま す。
...引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま
す。
[注意]: 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#[]... -
ThreadsWait
# threads -> Array (9116.0) -
同期されるスレッドの一覧を配列で返します。
...るスレッドの一覧を配列で返します。
使用例
require 'thwait'
threads = []
3.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new(*threads)
p thall.threads
#=> [#<Thread:0x21750 sleep>, #<Thread:0x216c4 sleep>, #<Thread:0x2163... -
Readline
. # readline(prompt = "" , add _ hist = false) -> String | nil (9112.0) -
prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。
...力するなどで、
ユーザからの入力がない場合は nil を返します。
本メソッドはスレッドに対応しています。
入力待ち状態のときはスレッドコンテキストの切替えが発生します。
入力時には行内編集が可能で、vi モードと......:
require "readline"
input = Readline.readline
(プロンプトなどは表示せずに、入力待ちの状態になります。
ここでは「abc」を入力後、エンターキーを押したと想定します。)
abc
p input # => "abc"
input = Readline.readline("> ")
(">"......s
p input # => "ls"
input = Readline.readline("> ", true)
(">"を表示し、入力待ちの状態になります。
ここでは「cd」を入力後、エンターキーを押したと想定します。)
> cd
p input # => "cd"
input = Readline.readline("> ", true)
(">"を表示... -
ThreadsWait
:: ErrNoWaitingThread (9016.0) -
終了を待つスレッドが存在しない時、発生します。
...終了を待つスレッドが存在しない時、発生します。
@see ThreadsWait#next_wait... -
Thread (6290.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
...スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、......おり、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ラ......リから GVL を操作できるので、複数のスレッドを
同時に実行するような拡張ライブラリは作成可能です。
=== スケジューリング
Ruby のスレッドスケジューリングはネイティブスレッドのそれを利用しています。
よって詳細... -
DRb
:: DRbServer # thread -> Thread (6234.0) -
サーバのメインスレッドを返します。
...サーバのメインスレッドを返します。
このスレッドはクライアントからの接続を受け付けるスレッドであって、
クライアントへの応答をするスレッドではありません。... -
static void rb
_ thread _ restore _ context(rb _ thread _ t th , int exit) (6232.0) -
スレッドを切り替えるにあたって、切り替え先のスレッド th の コンテキストを評価器に復帰します。
...
スレッドを切り替えるにあたって、切り替え先のスレッド th の
コンテキストを評価器に復帰します。...