當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Queue類用法及代碼示例

本文簡要介紹ruby語言中 Thread::Queue類 的用法。

Thread::Queue 類實現了multi-producer、multi-consumer 隊列。當必須在多個線程之間安全地交換信息時,它在線程編程中特別有用。 Thread::Queue 類實現了所有必需的鎖定語義。

該類實現了 FIFO 類型的隊列。在 FIFO 隊列中,最先添加的任務是最先檢索的。

例子:

queue = Thread::Queue.new

producer = Thread.new do
  5.times do |i|
     sleep rand(i) # simulate expense
     queue << i
     puts "#{i} produced"
  end
end

consumer = Thread.new do
  5.times do |i|
     value = queue.pop
     sleep rand(i/2) # simulate expense
     puts "consumed #{value}"
  end
end

consumer.join

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Queue類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。