当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。