`
pingfeng
  • 浏览: 57884 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ruby优秀代码,生产、消费者并发例子

阅读更多

无意中看到,ruby的程序真是非常友好,有兴趣可以品味一下。

IMAP的消息系统是用了C++的ACE库。当时很多人搞不清楚IMAP的消息收发机制,我做培训就会讲ACE的生产、消费者模型,用ACE库写起来的代码也不太好看。

Ruby这个就非常好看。



require 'thread'

queue = 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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics