Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Thread::Queueクラス
クラス・モジュールの継承リスト: Thread::Queue
< Object
< Kernel
< BasicObject
aliases: Queue
Queue はスレッド間の FIFO(first in first out) の通信路です。スレッドが空のキューを読み出そうとすると停止します。キューになんらかの情報が書き込まれると実行は再開されます。
最大サイズが指定できる Queue のサブクラス Thread::SizedQueue も提供されています。
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) } th1.join
実行すると以下のように出力します。
$ ruby que.rb resource1 resource2 resource3
定義 | 説明 | |
---|---|---|
new -> Thread::Queue
|
新しいキューオブジェクトを生成します。 |
定義 | 説明 | |
---|---|---|
push(value) -> ()
|
キューの値を追加します。待っているスレッドがいれば実行を再開させます。返り値は不定です。 |
|
clear -> ()
|
キューを空にします。返り値は不定です。 |
|
close -> self
|
キューを close します。close 済みのキューを再度 open することはできません。 |
|
closed? -> bool
|
キューが close されている時に true を返します。 |
|
pop(non_block = false) -> object
|
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。 |
|
empty? -> bool
|
キューが空の時、真を返します。 |
|
length -> Integer
|
キューの長さを返します。 |
|
num_waiting -> Integer
|
キューを待っているスレッドの数を返します。 |
!
!=
__id__
__send__
instance_eval
instance_exec
method_missing
singleton_method_added
singleton_method_removed
singleton_method_undefined
!~
<=>
==
===
=~
_dump
class
clone
define_singleton_method
display
enum_for
eql?
equal?
extend
freeze
frozen?
hash
initialize
initialize_copy
inspect
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
itself
marshal_dump
marshal_load
method
methods
nil?
object_id
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
psych_to_yaml
public_method
public_methods
public_send
remove_instance_variable
respond_to?
respond_to_missing?
send
singleton_class
singleton_method
singleton_methods
taint
tainted?
tap
to_a
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_s
to_str
trust
untaint
untrust
untrusted?
yield_self
.yaml_tag
::ARGF
::ARGV
::DATA
::ENV
::FALSE
::NIL
::RUBY_COPYRIGHT
::RUBY_DESCRIPTION
::RUBY_ENGINE
::RUBY_ENGINE_VERSION
::RUBY_PATCHLEVEL
::RUBY_PLATFORM
::RUBY_RELEASE_DATE
::RUBY_REVISION
::RUBY_VERSION
::SCRIPT_LINES__
::STDERR
::STDIN
::STDOUT
::TOPLEVEL_BINDING
::TRUE