るりまサーチ (Ruby 3.3)

最速Rubyリファレンスマニュアル検索!
68件ヒット [1-68件を表示] (0.140秒)

別のキーワード

  1. string b
  2. _builtin b
  3. b string
  4. b
  5. b _builtin

検索結果

Thread#thread_variable_get(key) -> object | nil (63859.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) (63823.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 (63751.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 ローカル...

IRB::Context#thread -> Thread (63628.0)

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

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

@see Thread.current

DRb::DRbServer#thread -> Thread (63610.0)

サーバのメインスレッドを返します。

サーバのメインスレッドを返します。

このスレッドはクライアントからの接続を受け付けるスレッドであって、
クライアントへの応答をするスレッドではありません。

絞り込み条件を変える

Net::IMAP#thread(algorithm, search_keys, charset) -> [Net::IMAP::ThreadMember] (54991.0)

THREADコマンドを送り、メールボックスを検索した結果を スレッド形式の木構造で返します。

THREADコマンドを送り、メールボックスを検索した結果を
スレッド形式の木構造で返します。

THREAD コマンドは 5256 で定義されています。
詳しくはそちらを参照してください。
このコマンドは Net::IMAP#capability の返り値を見ることで
利用可能かどうか判断できます。

algorithm は木構造を決定するためのアルゴリズムを指定します。
以下の2つが利用可能です。
* "ORDEREDSUBJECT" subjectを使って平坦に区切るだけ
* "REFERENCES" どのメッセージに返事をしているかを見て木構造を作る
詳しくは 5256 を見てく...

Thread#backtrace_locations(range) -> [Thread::Backtrace::Location] | nil (46048.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 (46048.0)

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

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

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

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

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

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

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

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

Thread#abort_on_exception -> bool (45760.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) (45460.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#backtrace -> [String] | nil (45340.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::Backtrace::Location#base_label -> String (36370.0)

self が表すフレームの基本ラベルを返します。通常、 Thread::Backtrace::Location#label から修飾を取り除いたもので構成 されます。

self が表すフレームの基本ラベルを返します。通常、
Thread::Backtrace::Location#label から修飾を取り除いたもので構成
されます。

//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end

Foo.new(0..2).locations.map do |call|
puts call.base_label
end

# => init...

Thread#[](name) -> object | nil (27736.0)

name に対応したスレッドに固有のデータを取り出します。 name に対応するスレッド固有データがなければ nil を返し ます。

name に対応したスレッドに固有のデータを取り出します。
name に対応するスレッド固有データがなければ nil を返し
ます。

@param name スレッド固有データのキーを文字列か Symbol で指定します。

//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...

Thread#report_on_exception -> bool (27520.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#alive? -> bool (27430.0)

スレッドが「生きている」時、true を返します。

スレッドが「生きている」時、true を返します。

例:
thr = Thread.new { }
thr.join # => #<Thread:0x401b3fb0 dead>
Thread.current.alive? # => true
thr.alive? # => false

Thread#status が真を返すなら、このメソッドも真です。

@see Thread#status, Thread#stop?

絞り込み条件を変える

Thread#fetch(name, default = nil) {|name| ... } -> object (27430.0)

name に関連づけられたスレッドに固有のデータを返します。 name に対応するスレッド固有データがない時には、引数 default が 与えられていればその値を、ブロックが与えられていれば そのブロックを評価した値を返します。

name に関連づけられたスレッドに固有のデータを返します。
name に対応するスレッド固有データがない時には、引数 default が
与えられていればその値を、ブロックが与えられていれば
そのブロックを評価した値を返します。

@param name スレッド固有データのキーを文字列か Symbol で指定します。
@param default name に対応するスレッド固有データがない時の返り値を指定します。
@raise KeyError 引数defaultもブロックも与えられてない時、
name に対応するスレッド固有データがないと発生します。
...

Thread#stop? -> bool (27430.0)

スレッドが終了(dead)あるいは停止(stop)している時、true を返します。

スレッドが終了(dead)あるいは停止(stop)している時、true を返します。

//emlist[例][ruby]{
a = Thread.new { Thread.stop }
b = Thread.current
a.stop? # => true
b.stop? # => false
//}

@see Thread#alive?, Thread#status

Thread#value -> object (27424.0)

スレッド self が終了するまで待ち(Thread#join と同じ)、 そのスレッドのブロックが返した値を返します。スレッド実行中に例外が 発生した場合には、その例外を再発生させます。

スレッド self が終了するまで待ち(Thread#join と同じ)、
そのスレッドのブロックが返した値を返します。スレッド実行中に例外が
発生した場合には、その例外を再発生させます。

スレッドが Thread#kill によって終了した場合は、返り値は不定です。

以下は、生成したすべてのスレッドの終了を待ち結果を出力する例です。

threads = []
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })...

Thread::ConditionVariable#broadcast -> self (27388.0)

状態変数を待っているスレッドをすべて再開します。再開された スレッドは 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)
...

Thread#ignore_deadlock=(bool) (27358.0)

デッドロック検知を無視する機能をon/offします。デフォルト値はfalseです。

デッドロック検知を無視する機能をon/offします。デフォルト値はfalseです。

trueを渡すとデッドロックを検知しなくなります。

//emlist[][ruby]{
Thread.ignore_deadlock = true
queue = Thread::Queue.new

trap(:SIGUSR1){queue.push "Received signal"}

# ignore_deadlockがfalseだとエラーが発生する
puts queue.pop
//}

@see Thread#ignore_deadlock

絞り込み条件を変える

Thread#raise(error_type, message, traceback) -> () (27340.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::Backtrace::Location#label -> String (27340.0)

self が表すフレームのラベルを返します。通常、メソッド名、クラス名、モ ジュール名などで構成されます。

self が表すフレームのラベルを返します。通常、メソッド名、クラス名、モ
ジュール名などで構成されます。

例: Thread::Backtrace::Location の例1を用いた例

//emlist[][ruby]{
loc = c(0..1).first
loc.label # => "a"
//}

@see Thread::Backtrace::Location#base_label

Thread#ignore_deadlock -> bool (27322.0)

デッドロック検知を無視する機能のon/offを返します。

デッドロック検知を無視する機能のon/offを返します。

デフォルト値はfalseで、デッドロックが検知されます。


@see Thread#ignore_deadlock=

Thread#key?(name) -> bool (27322.0)

name に対応したスレッドに固有のデータが定義されていれば true を返します。

name に対応したスレッドに固有のデータが定義されていれば
true を返します。

@param name 文字列か Symbol で指定します。

//emlist[例][ruby]{
me = Thread.current
me[:oliver] = "a"
me.key?(:oliver) # => true
me.key?(:stanley) # => false
//}

Thread#keys -> [Symbol] (27322.0)

スレッド固有データに関連づけられたキーの配列を返します。キーは Symbol で返されます。

スレッド固有データに関連づけられたキーの配列を返します。キーは
Symbol で返されます。

th = Thread.current
th[:foo] = 'FOO'
th['bar'] = 'BAR'
p th.keys

#=> [:bar, :foo]

絞り込み条件を変える

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

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

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

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


@see Thread.pending_interrupt?

Thread::Backtrace::Location#absolute_path -> String (27322.0)

self が表すフレームの絶対パスを返します。

self が表すフレームの絶対パスを返します。

//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end

Foo.new(0..2).locations.map do |call|
puts call.absolute_path
end

# => /path/to/foo.rb
# /path/to/foo.rb
# /path/to/foo.rb
//}

@see...

Thread#status -> String | false | nil (27256.0)

生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず れかで返します。正常終了したスレッドに対して false、例外によ り終了したスレッドに対して nil を返します。

生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず
れかで返します。正常終了したスレッドに対して false、例外によ
り終了したスレッドに対して nil を返します。

Thread#alive? が真を返すなら、このメソッドも真です。

例:
a = Thread.new { raise("die now") }
b = Thread.new { Thread.stop }
c = Thread.new { Thread.exit }
d = Thread.new { sleep }
d.kill ...

Thread#report_on_exception=(newstate) (27220.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#set_trace_func(pr) -> Proc | nil (27166.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#inspect -> String (27112.0)

自身を人間が読める形式に変換した文字列を返します。

自身を人間が読める形式に変換した文字列を返します。

//emlist[例][ruby]{
a = Thread.current
a.inspect # => "#<Thread:0x00007fdbaf07ddb0 run>"
b = Thread.new{}
b.inspect # => "#<Thread:0x00007fdbaf8f7d10@(irb):3 dead>"
//}

Thread#to_s -> String (27112.0)

自身を人間が読める形式に変換した文字列を返します。

自身を人間が読める形式に変換した文字列を返します。

//emlist[例][ruby]{
a = Thread.current
a.inspect # => "#<Thread:0x00007fdbaf07ddb0 run>"
b = Thread.new{}
b.inspect # => "#<Thread:0x00007fdbaf8f7d10@(irb):3 dead>"
//}

Thread#priority -> Integer (27094.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) (27094.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#add_trace_func(pr) -> Proc (27058.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, ...

絞り込み条件を変える

Net::IMAP#uid_thread(algorithm, search_keys, charset) -> [Net::IMAP::ThreadMember] (18991.0)

THREADコマンドを送り、メールボックスを検索した結果を スレッド形式の木構造で返します。

THREADコマンドを送り、メールボックスを検索した結果を
スレッド形式の木構造で返します。

ほぼ Net::IMAP#thread と同じですが、返ってくるオブジェクトの
Net::IMAP::ThreadMember#seqno の内容が message sequence number
ではなく UID となります。

@param algorithm スレッド構造構築アルゴリズム名(文字列)
@param search_key 検索条件(文字列配列)
@param charset 検索条件の解釈に用いるCHARSET名(文字列)
@see Net::IMAP::ThreadMember...

Exception#backtrace_locations -> [Thread::Backtrace::Location] (18955.0)

バックトレース情報を返します。Exception#backtraceに似ていますが、 Thread::Backtrace::Location の配列を返す点が異なります。

バックトレース情報を返します。Exception#backtraceに似ていますが、
Thread::Backtrace::Location の配列を返す点が異なります。

現状では Exception#set_backtrace によって戻り値が変化する事はあり
ません。

//emlist[例: test.rb][ruby]{
require "date"
def check_long_month(month)
return if Date.new(2000, month, -1).day == 31
raise "#{month} is not long month"
end
...

Net::IMAP::ThreadMember#children -> [Net::IMAP::ThreadMember] (18604.0)

スレッドの木構造における自身の下位の部分を返します。

スレッドの木構造における自身の下位の部分を返します。

Thread::ConditionVariable#wait(mutex, timeout = nil) -> self (18136.0)

mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。

mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。

@param mutex Mutex オブジェクトを指定します。

@param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続け...

Thread::ConditionVariable#signal -> self (18088.0)

状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

状態変数を待っているスレッドを1つ再開します。再開された
スレッドは 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)
...

絞り込み条件を変える

Thread::Backtrace::Location#inspect -> String (18052.0)

Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文 字列に変換したオブジェクトを返します。

Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文
字列に変換したオブジェクトを返します。

//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end

Foo.new(0..2).locations.map do |call|
puts call.inspect
end

# => "path/to/foo.rb:5:in ...

Thread::Backtrace::Location#path -> String (18040.0)

self が表すフレームのファイル名を返します。

self が表すフレームのファイル名を返します。

例: Thread::Backtrace::Location の例1を用いた例

//emlist[][ruby]{
loc = c(0..1).first
loc.path # => "caller_locations.rb"
//}

@see Thread::Backtrace::Location#absolute_path

Thread::Backtrace::Location#lineno -> Integer (18022.0)

self が表すフレームの行番号を返します。

self が表すフレームの行番号を返します。

例: Thread::Backtrace::Location の例1を用いた例

//emlist[][ruby]{
loc = c(0..1).first
loc.lineno # => 2
//}

Net::IMAP::ThreadMember#seqno -> Integer | nil (18004.0)

メッセージの sequence number もしくは UID を返します。

メッセージの sequence number もしくは UID を返します。

root となるメッセージが存在しない場合しない木の場合は
nil を返します。

Thread::Backtrace::Location#to_s -> String (18004.0)

self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し ます。

self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し
ます。

//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end

Foo.new(0..2).locations.map do |call|
puts call.to_s
end

# => path/to/foo.rb:5:in `initialize'
# path/to/foo...

絞り込み条件を変える

WEBrick::GenericServer#tokens -> Thread::SizedQueue (9403.0)

MaxClient の設定のために使われる Thread::SizedQueue オブジェクト を返します。Thread::SizedQueue オブジェクトのサイズは現在受け付け ることのできるクライアントの数です。

MaxClient の設定のために使われる Thread::SizedQueue オブジェクト
を返します。Thread::SizedQueue オブジェクトのサイズは現在受け付け
ることのできるクライアントの数です。

MaxClient を知りたい場合は self.tokens.max です。
self.tokens.max - self.tokens.length が現在のクライアントの接続数です。

Thread::SizedQueue#deq(non_block = false) -> object (9394.0)

キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。

キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = SizedQueue.new(4)

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].eac...

Thread::SizedQueue#pop(non_block = false) -> object (9394.0)

キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。

キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = SizedQueue.new(4)

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].eac...

Thread::SizedQueue#shift(non_block = false) -> object (9394.0)

キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。

キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = SizedQueue.new(4)

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].eac...

Thread::Queue#deq(non_block = false) -> object (9376.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

t...

絞り込み条件を変える

Thread::Queue#pop(non_block = false) -> object (9376.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

t...

Thread::Queue#shift(non_block = false) -> object (9376.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

t...

Thread::SizedQueue#<<(obj) -> () (9358.0)

キューに与えられたオブジェクトを追加します。

キューに与えられたオブジェクトを追加します。

キューのサイズが Thread::SizedQueue#max に達している場合は、
non_block が真でなければ、キューのサイズが Thread::SizedQueue#max
より小さくなるまで他のスレッドに実行を譲ります。
その後、キューに与えられたオブジェクトを追加します。

@param obj キューに追加したいオブジェクトを指定します。
@param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。

@see Thread::Queue#push

Thread::SizedQueue#enq(obj, non_block = false) -> () (9358.0)

キューに与えられたオブジェクトを追加します。

キューに与えられたオブジェクトを追加します。

キューのサイズが Thread::SizedQueue#max に達している場合は、
non_block が真でなければ、キューのサイズが Thread::SizedQueue#max
より小さくなるまで他のスレッドに実行を譲ります。
その後、キューに与えられたオブジェクトを追加します。

@param obj キューに追加したいオブジェクトを指定します。
@param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。

@see Thread::Queue#push

Thread::SizedQueue#push(obj, non_block = false) -> () (9358.0)

キューに与えられたオブジェクトを追加します。

キューに与えられたオブジェクトを追加します。

キューのサイズが Thread::SizedQueue#max に達している場合は、
non_block が真でなければ、キューのサイズが Thread::SizedQueue#max
より小さくなるまで他のスレッドに実行を譲ります。
その後、キューに与えられたオブジェクトを追加します。

@param obj キューに追加したいオブジェクトを指定します。
@param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。

@see Thread::Queue#push

絞り込み条件を変える

Fiber#resume(*arg = nil) -> object (9322.0)

自身が表すファイバーへコンテキストを切り替えます。 自身は resume を呼んだファイバーの子となります。

自身が表すファイバーへコンテキストを切り替えます。
自身は resume を呼んだファイバーの子となります。

ただし、Fiber#transfer を呼び出した後に resume を呼び出す事はでき
ません。

@param arg self が表すファイバーに渡したいオブジェクトを指定します。

@return コンテキストの切り替えの際に Fiber.yield に与えられた引数
を返します。ブロックの終了まで実行した場合はブロックの評価結果
を返します。

@raise FiberError 自身が既に終了している場合、コンテキストの切替が
...

Fiber#transfer(*args) -> object (9322.0)

自身が表すファイバーへコンテキストを切り替えます。

自身が表すファイバーへコンテキストを切り替えます。

自身は Fiber#resume を呼んだファイバーの子となります。
Fiber#resume との違いは、ファイバーが終了したときや Fiber.yield が呼ばれたときは、
ファイバーの親へ戻らずにメインファイバーへ戻ります。

@param args メインファイバーから呼び出した Fiber#resume メソッドの返り値として渡したいオブジェクトを指定します。

@return コンテキスト切り替えの際に、Fiber#resume メソッドに与えられた引数を返します。

@raise FiberError 自身が既に終了してい...

Thread::Mutex#owned? -> bool (9322.0)

self がカレントスレッドによってロックされている場合に true を返します。 そうでない場合に false を返します。

self がカレントスレッドによってロックされている場合に true を返します。
そうでない場合に false を返します。


//emlist[例][ruby]{
m = Mutex.new
m.owned? # => false
m.lock
Thread.new do
m.owned? # => false
end.join
m.owned? # => true
//}

ThreadGroup#enclosed? -> bool (9322.0)

自身が enclose されているなら true を返します。そうでないなら false を返します。デフォルトは false です。

自身が enclose されているなら true を返します。そうでないなら false を返します。デフォルトは false です。

freeze された ThreadGroup には Thread の追加/削除ができませんが、enclosed? は false を返します。

thg = ThreadGroup.new
p thg.enclosed? # => false
thg.enclose
p thg.enclosed? # => true

thg = ThreadGroup.new
p thg.e...

Thread::Mutex#locked? -> bool (9304.0)

mutex がロックされている時、真を返します。

mutex がロックされている時、真を返します。

//emlist[例][ruby]{
m = Mutex.new
m.locked? # => false
m.lock
m.locked? # => true
//}

絞り込み条件を変える

Thread::Mutex#synchronize { ... } -> object (9304.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

ブロックが最後に評価した値を返します。

@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # =>...

Thread::Mutex#try_lock -> bool (9304.0)

mutex をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。

mutex をロックしようとして、ロックが成功した場合、真を返します。
ロックできなかった場合にはブロックせず偽を返します。

//emlist[例][ruby]{
m = Mutex.new
m.try_lock # => true
m.try_lock # => false
//}

Thread::Queue#closed? -> bool (9304.0)

キューが close されている時に true を返します。

キューが close されている時に true を返します。

//emlist[例][ruby]{
q = Queue.new

[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }

q.closed? # => false
q.close
q.closed? # => true
//}

Thread::Queue#empty? -> bool (9304.0)

キューが空の時、真を返します。

キューが空の時、真を返します。

//emlist[例][ruby]{
q = Queue.new
q.empty? # => true
q.push(:resource)
q.empty? # => false
//}

Thread::SizedQueue#empty? -> bool (9304.0)

キューが空の時、真を返します。

キューが空の時、真を返します。

絞り込み条件を変える

IO#eof -> bool (340.0)

ストリームがファイルの終端に達した場合、true を返します。そうでない場合、false を返します。

ストリームがファイルの終端に達した場合、true を返します。そうでない場合、false を返します。

f = File.new("testfile")
dummy = f.readlines
f.eof #=> true

自身がパイプやソケットなどのストリームであった場合、相手がデータを送るか close するまでブロックします。

r, w = IO.pipe
Thread.new { sleep 10; w.close }
r.eof? #=> 10秒ブロックしてから true を返す。

r, w = IO.pipe
Thre...

IO#eof? -> bool (340.0)

ストリームがファイルの終端に達した場合、true を返します。そうでない場合、false を返します。

ストリームがファイルの終端に達した場合、true を返します。そうでない場合、false を返します。

f = File.new("testfile")
dummy = f.readlines
f.eof #=> true

自身がパイプやソケットなどのストリームであった場合、相手がデータを送るか close するまでブロックします。

r, w = IO.pipe
Thread.new { sleep 10; w.close }
r.eof? #=> 10秒ブロックしてから true を返す。

r, w = IO.pipe
Thre...

Monitor#wait_for_cond(cond, timeout) -> bool (340.0)

MonitorMixin::ConditionVariable 用の内部メソッドです。

MonitorMixin::ConditionVariable 用の内部メソッドです。

@param cond Thread::ConditionVariable を指定します。
@param timeout タイムアウトまでの秒数。指定しなかった場合はタイムアウトしません。

@return タイムアウトしたときは false を返します。それ以外は true を返します。

//emlist[例][ruby]{
require 'monitor'
m = Monitor.new
cv = Thread::ConditionVariable.new
m.enter
m.wait_for_c...