type=class
superclass=Object
included=
extended=
dynamically_included=
dynamically_extended=
library=thread
aliases=
aliasof=

Queue はスレッド間の FIFO(first in first out) の通信路です。ス
レッドが空のキューを読み出そうとすると停止します。キューになんら
かの情報が書き込まれると実行は再開されます。

最大サイズが指定できる Queue のサブクラス [[c: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
