るりまサーチ (Ruby 2.6.0)

最速Rubyリファレンスマニュアル検索!
446件ヒット [1-100件を表示] (0.113秒)
トップページ > クエリ:r[x] > クエリ:Thread[x] > バージョン:2.6.0[x]

別のキーワード

  1. _builtin to_r
  2. open3 pipeline_r
  3. matrix elements_to_r
  4. fileutils rm_r
  5. fileutils cp_r

ライブラリ

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Thread (132337.0)

スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。

スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。


=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡...

static void rb_thread_wait_other_threads(void) (114901.0)

Thread#thread_variable_get(key) -> object | nil (108856.0)

引数 key で指定した名前のスレッドローカル変数を返します。

引数 key で指定した名前のスレッドローカル変数を返します。

[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。

例:

Thread.new {
Thread.current.thread_variable_set("foo", "bar") # スレッドローカル
Thread.current["foo"] = "bar" # Fiber ローカル

Fiber.new {
Fiber.yield ...

Thread#thread_variable_set(key, value) (108802.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#thread_variable?(key) -> bool (108748.0)

引数 key で指定した名前のスレッドローカル変数が存在する場合に true、そ うでない場合に false を返します。

引数 key で指定した名前のスレッドローカル変数が存在する場合に 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 ローカル...

絞り込み条件を変える

static VALUE rb_thread_raise(int argc, VALUE *argv, rb_thread_t th) (97201.0)

static VALUE rb_thread_start_0(VALUE (*fn)(), void *arg, rb_thread_t th_arg) (97201.0)

static VALUE rb_thread_yield(VALUE arg, rb_thread_t th) (97201.0)

static int rb_thread_dead(rb_thread_t th) (97201.0)

static int rb_thread_join(rb_thread_t th, double limit) (97201.0)

絞り込み条件を変える

static rb_thread_t rb_thread_alloc(VALUE klass) (97201.0)

static rb_thread_t rb_thread_check(VALUE data) (97201.0)

static void rb_thread_ready(rb_thread_t th) (97201.0)

static void rb_thread_remove(rb_thread_t th) (97201.0)

static void rb_thread_restore_context(rb_thread_t th, int exit) (97201.0)

スレッドを切り替えるにあたって、切り替え先のスレッド th の コンテキストを評価器に復帰します。

スレッドを切り替えるにあたって、切り替え先のスレッド th の
コンテキストを評価器に復帰します。

絞り込み条件を変える

static void rb_thread_save_context(rb_thread_t th) (97201.0)

スレッドを切り替えるにあたって、現在実行中のスレッド th の コンテキストを評価器から th に退避します。

スレッドを切り替えるにあたって、現在実行中のスレッド th の
コンテキストを評価器から th に退避します。

VALUE rb_thread_run(VALUE thread) (96949.0)

スレッド thread に実行権を渡します。

スレッド thread に実行権を渡します。

VALUE rb_thread_wakeup(VALUE thread) (96949.0)

停止中のスレッド thread を再開させます。

停止中のスレッド thread を再開させます。

VALUE rb_thread_local_aref(VALUE thread, ID id) (96901.0)

VALUE rb_thread_local_aset(VALUE thread, ID id, VALUE val) (96901.0)

絞り込み条件を変える

static VALUE rb_thread_abort_exc(VALUE thread) (96901.0)

static VALUE rb_thread_abort_exc_set(VALUE thread, VALUE val) (96901.0)

static VALUE rb_thread_alive_p(VALUE thread) (96901.0)

static VALUE rb_thread_aref(VALUE thread, VALUE id) (96901.0)

static VALUE rb_thread_aset(VALUE thread, VALUE id, VALUE val) (96901.0)

絞り込み条件を変える

static VALUE rb_thread_initialize(VALUE thread, VALUE args) (96901.0)

static VALUE rb_thread_inspect(VALUE thread) (96901.0)

static VALUE rb_thread_join_m(int argc, VALUE *argv, VALUE thread) (96901.0)

static VALUE rb_thread_key_p(VALUE thread, VALUE id) (96901.0)

static VALUE rb_thread_keys(VALUE thread) (96901.0)

絞り込み条件を変える

static VALUE rb_thread_kill(VALUE thread) (96901.0)

static VALUE rb_thread_priority(VALUE thread) (96901.0)

static VALUE rb_thread_priority_set(VALUE thread, VALUE prio) (96901.0)

static VALUE rb_thread_raise_m(int argc, VALUE *argv, VALUE thread) (96901.0)

static VALUE rb_thread_safe_level(VALUE thread) (96901.0)

絞り込み条件を変える

static VALUE rb_thread_status(VALUE thread) (96901.0)

static VALUE rb_thread_stop_p(VALUE thread) (96901.0)

static VALUE rb_thread_value(VALUE thread) (96901.0)

VALUE rb_thread_stop(void) (96649.0)

現在実行中のスレッドを停止します。 他のスレッドから rb_thread_wakeup を呼ばれると再開します。

現在実行中のスレッドを停止します。
他のスレッドから rb_thread_wakeup を呼ばれると再開します。

static VALUE rb_thread_pass(void) (96649.0)

Thread#pass の実体。

Thread#pass の実体。

絞り込み条件を変える

void rb_thread_schedule(void) (96637.0)

他のスレッドに実行権を渡します。 対象の特定はできません。

他のスレッドに実行権を渡します。
対象の特定はできません。

@see rb_thread_wait_fd, rb_thread_wait_for

VALUE rb_thread_create(fn, arg) (96601.0)

VALUE (*fn)(); void *arg;

VALUE (*fn)();
void *arg;

VALUE rb_thread_current(void) (96601.0)

現在実行中のスレッドを返します。

現在実行中のスレッドを返します。

VALUE rb_thread_list(void) (96601.0)

VALUE rb_thread_main(void) (96601.0)

メインスレッド (プロセスの一番最初に存在するスレッド) を返します。

メインスレッド (プロセスの一番最初に存在するスレッド) を返します。

絞り込み条件を変える

int rb_thread_alone(void) (96601.0)

評価器にスレッドが一つしか存在しないとき真。

評価器にスレッドが一つしか存在しないとき真。

int rb_thread_fd_writable(int fd) (96601.0)

static VALUE rb_thread_critical_get(void) (96601.0)

static VALUE rb_thread_critical_set(VALUE obj, VALUE val) (96601.0)

static VALUE rb_thread_exit(void) (96601.0)

絞り込み条件を変える

static VALUE rb_thread_s_abort_exc(void) (96601.0)

static VALUE rb_thread_s_abort_exc_set(VALUE self, VALUE val) (96601.0)

static VALUE rb_thread_s_kill(VALUE obj, VALUE th) (96601.0)

static VALUE rb_thread_s_new(int argc, VALUE *argv, VALUE klass) (96601.0)

static VALUE rb_thread_start(VALUE klass, VALUE args) (96601.0)

絞り込み条件を変える

static void rb_thread_cleanup(void) (96601.0)

static void rb_thread_deadlock(void) (96601.0)

void rb_gc_mark_threads(void) (96601.0)

存在するスレッド全てをマークします。

存在するスレッド全てをマークします。

void rb_thread_atfork(void) (96601.0)

void rb_thread_fd_close(int fd) (96601.0)

絞り込み条件を変える

void rb_thread_interrupt(void) (96601.0)

void rb_thread_signal_raise(char *sig) (96601.0)

void rb_thread_sleep(int sec) (96601.0)

void rb_thread_sleep_forever(void) (96601.0)

void rb_thread_start_timer(void) (96601.0)

setitimer(2) が存在する場合のみ定義されます。

setitimer(2) が存在する場合のみ定義されます。

Ruby のスレッドスケジューリングに使用している
インターバルタイマーを開始します。

絞り込み条件を変える

void rb_thread_stop_timer(void) (96601.0)

setitimer(2) が存在する場合のみ定義されます。

setitimer(2) が存在する場合のみ定義されます。

Ruby のスレッドスケジューリングに使用しているインターバルタイマーを
停止します。このタイマーが止まると Ruby のスレッド機構は基本的に停止
しますので注意してください。

void rb_thread_trap_eval(VALUE cmd, int sig) (96601.0)

void rb_thread_wait_fd(int fd) (96601.0)

ファイルディスクリプタ fd を読み込めるようになるまで カレントスレッドを停止します。

ファイルディスクリプタ fd を読み込めるようになるまで
カレントスレッドを停止します。

void rb_thread_wait_for(struct timeval time) (96601.0)

time の長さの時間が経過するまでカレントスレッドを停止します。

time の長さの時間が経過するまでカレントスレッドを停止します。

rinda/rinda (96091.0)

Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。

Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。

タプルスペースとは並列プログラムにおける一つのパターンです。
並列プログラミングにおいては、ロックのような同期処理が必須ですが、
適切な同期処理を実現することは困難をともないます。
このパターンにおいては、複数の並列単位(スレッド/プロセス)間の通信をすべて
タプルスペースという領域を経由して行います。これによって
プロセス間の通信トポロジーを単純化し、問題を簡単化します。
タプルスペースに対しては、タプルを書き込む(write)、取り出す(take)、
タプルの要素を覗き見る(read)
という操作の...

絞り込み条件を変える

Thread#priority -> Integer (90655.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
...

Thread#priority=(val) (90655.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
...

Thread.current -> Thread (90640.0)

現在実行中のスレッド(カレントスレッド)を返します。

現在実行中のスレッド(カレントスレッド)を返します。

p Thread.current #=> #<Thread:0x4022e6fc run>

Thread#report_on_exception -> bool (90463.0)

真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

デフォルトはスレッド作成時の Thread.report_on_exception です。

@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。

//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
a.report_on_exception # => true
a.run
# => #<Th...

Thread#report_on_exception=(newstate) (90463.0)

真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

デフォルトはスレッド作成時の Thread.report_on_exception です。

@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。

//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
a.report_on_exception # => true
a.run
# => #<Th...

絞り込み条件を変える

Thread.report_on_exception -> bool (90409.0)

真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

デフォルトは true です。

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: fro...

Thread.report_on_exception=(newstate) (90409.0)

真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

デフォルトは true です。

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: fro...

Thread#backtrace_locations(range) -> [Thread::Backtrace::Location] | nil (82345.0)

スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。

スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。

引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。

@param start 開始フレームの位置を数値で指定します。

@param length 取得するフレームの個数を指定します。

@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。

Kernel.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。

//emlist[例][ruby]...

Thread#backtrace_locations(start = 0, length = nil) -> [Thread::Backtrace::Location] | nil (82045.0)

スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。

スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。

引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。

@param start 開始フレームの位置を数値で指定します。

@param length 取得するフレームの個数を指定します。

@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。

Kernel.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。

//emlist[例][ruby]...

Thread#group -> ThreadGroup (81919.0)

スレッドが属している ThreadGroup オブジェクトを返します。

スレッドが属している ThreadGroup オブジェクトを返します。

p Thread.current.group == ThreadGroup::Default
# => true

絞り込み条件を変える

Thread.pending_interrupt?(error = nil) -> bool (81835.0)

非同期割り込みのキューが空かどうかを返します。

非同期割り込みのキューが空かどうかを返します。

Thread.handle_interrupt は非同期割り込みの発生を延期させるのに使
用しますが、本メソッドは任意の非同期割り込みが存在するかどうかを確認す
るのに使用します。

本メソッドが true を返した場合、Thread.handle_interrupt で例外の
発生を延期するブロックを終了すると延期させられていた例外を発生させるこ
とができます。

@param error 対象の例外クラスを指定します。省略した場合は全ての例外を対
象に確認を行います。

例: 延期させられていた例外をただちに発生...

Thread.fork(*arg) {|*arg| ... } -> Thread (81661.0)

スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。

スレッドを生成して、ブロックの評価を開始します。
生成したスレッドを返します。

基本的に Thread.new と同じですが、
new メソッドと違い initialize メソッドを呼びません。

@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド固有のローカル変数に値を渡すために使用します。

@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。


注意:

例えば、以下のコー...

Thread.start(*arg) {|*arg| ... } -> Thread (81661.0)

スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。

スレッドを生成して、ブロックの評価を開始します。
生成したスレッドを返します。

基本的に Thread.new と同じですが、
new メソッドと違い initialize メソッドを呼びません。

@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド固有のローカル変数に値を渡すために使用します。

@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。


注意:

例えば、以下のコー...

Thread#raise(error_type, message, traceback) -> () (81637.0)

自身が表すスレッドで強制的に例外を発生させます。

自身が表すスレッドで強制的に例外を発生させます。

@param error_type Kernel.#raise を参照してください。

@param message Kernel.#raise を参照してください。

@param traceback Kernel.#raise を参照してください。

Thread.new {
sleep 1
Thread.main.raise "foobar"
}

begin
sleep
rescue
p $!, $@
end

=> #<RuntimeError: foobar>
[...

Thread#pending_interrupt?(error = nil) -> bool (81619.0)

self の非同期例外のキューが空かどうかを返します。

self の非同期例外のキューが空かどうかを返します。

@param error 対象の例外クラスを指定します。


@see Thread.pending_interrupt?

絞り込み条件を変える

Thread.handle_interrupt(hash) { ... } -> object (81571.0)

スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。

スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを
実行します。

「割り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了されます)を意味します。

@param hash 例外クラスがキー、割り込みのタイミングを指定する
Symbol が値の Hash を指定します。
値の内容は以下のいずれかです。

: :immediate

すぐに割り込みます。

: :on_block...

Thread#abort_on_exception -> bool (81457.0)

真の場合、そのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例 外は、Thread#join などで検出されない限りそのスレッ ドだけをなにも警告を出さずに終了させます。

真の場合、そのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例
外は、Thread#join などで検出されない限りそのスレッ
ドだけをなにも警告を出さずに終了させます。

デフォルトは偽です。c:Thread#exceptionを参照してください。

@param newstate 自身を実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。

//emlist[例][ruby]{
thread = Thread.new { sleep 1 }
thread.abort_o...

Thread#abort_on_exception=(newstate) (81457.0)

真の場合、そのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例 外は、Thread#join などで検出されない限りそのスレッ ドだけをなにも警告を出さずに終了させます。

真の場合、そのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例
外は、Thread#join などで検出されない限りそのスレッ
ドだけをなにも警告を出さずに終了させます。

デフォルトは偽です。c:Thread#exceptionを参照してください。

@param newstate 自身を実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。

//emlist[例][ruby]{
thread = Thread.new { sleep 1 }
thread.abort_o...

Thread#run -> self (81421.0)

停止状態(stop)のスレッドを再開させます。 Thread#wakeup と異なりすぐにスレッドの切り替え を行います。

停止状態(stop)のスレッドを再開させます。
Thread#wakeup と異なりすぐにスレッドの切り替え
を行います。

@raise ThreadError 死んでいるスレッドに対して実行すると発生します。

//emlist[例][ruby]{
a = Thread.new { puts "a"; Thread.stop; puts "c" }
sleep 0.1 while a.status!='sleep'
puts "Got here"
a.run
a.join
# => a
# => Got here
# => c
//}

@see Thread#wakeup, Threa...

Thread.abort_on_exception -> bool (81421.0)

真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。

真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join
などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。

デフォルトは false です。

c:Thread#exceptionを参照してください。

@param newstate スレッド実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。

//emlist[例][ruby]{
Thread.abort_on_exception # => false...

絞り込み条件を変える

Thread.abort_on_exception=(newstate) (81421.0)

真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。

真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join
などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。

デフォルトは false です。

c:Thread#exceptionを参照してください。

@param newstate スレッド実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。

//emlist[例][ruby]{
Thread.abort_on_exception # => false...

Thread#set_trace_func(pr) -> Proc | nil (81409.0)

スレッドにトレース用ハンドラを設定します。

スレッドにトレース用ハンドラを設定します。

nil を渡すとトレースを解除します。

設定したハンドラを返します。

//emlist[例][ruby]{
th = Thread.new do
class Trace
end
2.to_s
Thread.current.set_trace_func nil
3.to_s
end
th.set_trace_func lambda {|*arg| p arg }
th.join

# => ["line", "example.rb", 2, nil, #<Binding:0x00007fc8de87cb08>, nil]
#...

Thread#add_trace_func(pr) -> Proc (81337.0)

スレッドにトレース用ハンドラを追加します。

スレッドにトレース用ハンドラを追加します。

追加したハンドラを返します。

@param pr トレースハンドラ(Proc オブジェクト)

//emlist[例][ruby]{
th = Thread.new do
class Trace
end
43.to_s
end
th.add_trace_func lambda {|*arg| p arg }
th.join

# => ["line", "example.rb", 4, nil, #<Binding:0x00007f98e107d0d8>, nil]
# => ["c-call", "example.rb", 4, ...

Thread#backtrace -> [String] | nil (81337.0)

スレッドの現在のバックトレースを返します。

スレッドの現在のバックトレースを返します。

スレッドがすでに終了している場合は nil を返します。

//emlist[例][ruby]{
class C1
def m1
sleep 5
end
def m2
m1
end
end

th = Thread.new {C1.new.m2; Thread.stop}
th.backtrace
# => [
# [0] "(irb):3:in `sleep'",
# [1] "(irb):3:in `m1'",
# [2] "(irb):6:in `m2'",
# [3] ...

Thread#terminate -> self (81337.0)

スレッドの実行を終了させます。終了時に ensure 節が実行されます。

スレッドの実行を終了させます。終了時に ensure 節が実行されます。

ただし、スレッドは終了処理中(aborting)にはなりますが、
直ちに終了するとは限りません。すでに終了している場合は何もしません。このメソッドにより
終了したスレッドの Thread#value の返り値は不定です。
自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0)
により終了します。

Kernel.#exit と違い例外 SystemExit を発生しません。

th1 = Thread.new do
begin
sleep 10
...

絞り込み条件を変える

resolv (78139.0)

DNSによる名前解決を行うライブラリです。 Ruby で書かれているため thread-aware であり、並列に多くのホスト名を解決することができます。

DNSによる名前解決を行うライブラリです。 Ruby で書かれているため thread-aware であり、並列に多くのホスト名を解決することができます。

DNS モジュールを使うことで、さまざまなリソースを直接ルックアップできます。

なお、単にホスト名から IP アドレスを得たいだけであれば、
socket ライブラリの IPSocket.getaddress などが使用できます。

//emlist[例:][ruby]{
require "resolv"
Resolv.getaddress("www.ruby-lang.org")
Resolv.getname("210.251.121...

Thread.kill(thread) -> Thread (73393.0)

指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。

指定したスレッド thread に対して Thread#exit を呼びます。終了したスレッドを返します。

@param thread 終了したい Thread オブジェクトを指定します。

th = Thread.new do
end

p Thread.kill(th) #=> #<Thread:0x40221bc8 dead>

Thread.new(*arg) {|*arg| ... } -> Thread (72940.0)

スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。

スレッドを生成して、ブロックの評価を開始します。
生成したスレッドを返します。

@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド固有のローカル変数に値を渡すために使用します。

@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。

注意:

例えば、以下のコードは間違いです。スレッドの実行が開始される前に
変数 i が書き変わる可能性があるからです。

for i in 1....

Thread.list -> [Thread] (72676.0)

全ての生きているスレッドを含む配列を生成して返します。aborting 状態であるスレッド も要素に含まれます。

全ての生きているスレッドを含む配列を生成して返します。aborting 状態であるスレッド
も要素に含まれます。

Thread.new do
sleep
end
sleep 0.1

p Thread.list #=> [#<Thread:0x40377a54 sleep>, #<Thread:0x4022e6fc run>]

Thread.main -> Thread (72640.0)

メインスレッドを返します。

メインスレッドを返します。

p Thread.main #=> #<Thread:0x4022e6fc run>

絞り込み条件を変える

<< 1 2 3 ... > >>