本文简要介绍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 Queue closed?用法及代码示例
- Ruby Queue close()用法及代码示例
- Ruby Queue deq()用法及代码示例
- Ruby Queue enq()用法及代码示例
- Ruby Queue.close用法及代码示例
- Ruby Queue clear()用法及代码示例
- Ruby Queue new()用法及代码示例
- Ruby Queue size()用法及代码示例
- Ruby Queue empty?用法及代码示例
- Ruby Queue pop()用法及代码示例
- Ruby Queue shift()用法及代码示例
- Ruby Queue length()用法及代码示例
- Ruby Queue push()用法及代码示例
- Ruby Queue.new用法及代码示例
- Ruby QueryExtension.read_multipart用法及代码示例
- Ruby Time tv_sec用法及代码示例
- Ruby MatchData.pre_match用法及代码示例
- Ruby Symbol capitalize用法及代码示例
- Ruby Matrix lup()用法及代码示例
- Ruby SizedQueue clear()用法及代码示例
- Ruby Object.instance_variable_get用法及代码示例
- Ruby Spotter.spot_op_asgn2_for_name用法及代码示例
- Ruby Float arg()用法及代码示例
- Ruby WIN32OLE_METHOD#visible?用法及代码示例
- Ruby Matrix unitary?()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Queue类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。