Ruby中用线程实现经典的生产者消费者问题代码实例
2018-10-12 14:12
615 查看
示例代码:
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线程的输出完成再关闭此进程
运行结果:
ProAndCon
produced
produced
consumed 0
produced
produced
consumed 1
consumed 2
consumed 3
produced
consumed 4
produced
consumed 5
美化的代码图:
相关文章推荐
- Ruby:线程实现经典的生产者消费者问题
- Ruby:线程实现经典的生产者消费者问题
- ruby线程实现生产者消费者问题示例(队列Queue实现线程同步)
- 《Lua程序设计》9.2 管道(pipe)与过滤器(filter) 包含使用协同函数实现“生产者——消费者”问题的实例代码
- 多线程(线程间通信-多生产者多消费者问题-JDK1.5解决办法-范例),停止线程,线程中方法的区别,匿名内部类实现多线程,线程总结
- 经典多线程实例:生产者消费者问题
- java多线程总结六:经典生产者消费者问题实现
- 用多线程实现“生产者-消费者问题”(代码+实验报告)
- 经典问题之生产者-消费者问题——Lock实现
- java线程:三种方式实现生产者消费者问题_1
- 生产者消费者问题之Java线程实现
- 多线程经典案例——生产者/消费者问题的Java实现与详解
- 经典线程同步问题(生产者&消费者)--Java实现
- 用多线程实现“生产者-消费者问题”(代码+实验报告)
- 经典线程同步问题(生产者&消费者)--Java实现
- 再谈java线程以及经典的生产者,消费者问题
- 线程经典代码三,(循环缓冲区,生产者/消费者关系)
- 线程经典代码二,(同步情况下的生产者/消费者关系)
- java多线程总结六:经典生产者消费者问题实现
- java线程:三种方式实现生产者消费者问题_2