欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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线程的输出完成再关闭此进程

上一篇:

下一篇: