本文簡要介紹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類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。