ruby线程实现生产者消费者问题示例(队列Queue实现线程同步)
程序员文章站
2024-01-02 17:54:04
ruby线程实现经典的生产者消费者问题,用ruby中的queue类实现线程同步问题。
复制代码 代码如下:require "thread" puts "pro...
ruby线程实现经典的生产者消费者问题,用ruby中的queue类实现线程同步问题。
复制代码 代码如下:
require "thread"
puts "proandcon"
queue = queue.new #用队列queue实现线程同步
producer = thread.new do
10.times do |i|
sleep rand(i) # 让线程睡眠一段时间
queue << i
puts "#{i} produced"
end
end
consumer = thread.new do
10.times do |i|
value = queue.pop
sleep rand(i/2)
puts "consumed #{value}"
end
end
consumer.join #等待consumer线程的输出完成再关闭此进程