Ruby实现生产者和消费者代码分享_ruby专题

#ruby实现生产者和消费者代码

require 'thread'
queue = Queue.new
consumers = Thread.new do
  5.times do |i|
    obj = queue.pop
    print "consumer :#{i}\n"
    sleep(rand(0.05))
  end
end

producters = Thread.new do
  5.times do |i|
    sleep(0.1)
    print "producter : #{i}\n"
    queue.push("Item #{i}")
  end
end

producters.join
consumers.join

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ruby
, 消费者
生产者
生产者消费者模式、生产者消费者问题、生产者消费者、java生产者消费者模式、生产者消费者模型,以便于您获取更多的相关知识。

时间: 2024-10-26 07:54:37

Ruby实现生产者和消费者代码分享_ruby专题的相关文章

Ruby实现生产者和消费者代码分享

  这篇文章主要介绍了Ruby实现生产者和消费者代码分享,本文直接给出实现代码,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #ruby实现生产者和消费者代码   require 'thread' queue = Queue.new consumers = Thread.new do 5.times do |i| obj = queue.pop print "consumer :#{i}n"

Ruby实现批量对文件增加前缀代码分享_ruby专题

最近从设计师那里get了超多的图,结果都是1.png,2.png这样的文件名,自己还需要将这些文件变成可读的文件名,不想一个一个得修改,于是就写了一个简单的脚本,实现批量对多个文件增加前缀的操作,后期修改了一下,分享一下. 代码 复制代码 代码如下: #!/usr/bin/env ruby # encoding: utf-8 srcDir= ARGV[0] prefix= ARGV[1] pattern = '*' pattern = ARGV[2] if ARGV.size == 3 Dir[

ruby实现的文件自删除代码分享_ruby专题

因为windows的文件删除机制和unix like的不一样,so不保证如下代码能在windows中使用,哪位童鞋帮我在windows中测试一下也好啊! 复制代码 代码如下: #!/usr/bin/ruby 5.times do |x|  File.open($0,"w+") do |f|   f.puts "module M"   f.puts "def M.var;#{x**x} end"   f.puts "end"  

Ruby迭代器的7种技巧分享_ruby专题

Ruby由于吸收了Perl的正则表达式和Python的可读性,所以其中的计数取值方法,是非常人性化和灵活的,这里可以举例来说明下:一.打印7次"hello,world",如下: 复制代码 代码如下: 7.times{puts "hello,world"} #在这里,puts的作用等同于print+"\n" 二.依次打印1..9,在ruby中的方法就更多了,这里用比较简单的方式来实现,如下: 复制代码 代码如下: (1..9).each{|i| p

Ruby基础知识之方法、代码段_ruby专题

Ruby中的方法是一个有名称的代码块,是与一个或多个对象关联的参数化的代码.调用时须给出方法名,接收者(所在对象),参数值,且最后一个表达式的值做为返回值.与Ruby方法相似的是代码块,它没有名字,且调用时只通过迭代器或被间接调用.  (一)方法 (1)定义方法 定义方法就是 复制代码 代码如下: def 方法名(参数列表) 方法体 end 最后一个表达式做为返回值返回,如果有值,则返回:无值则返回nil.可以省略return. 在类中定义的方法为实例方法,实例方法可以在类的实例对象上使用.如果

收集的多个ruby遍历文件夹代码实例_ruby专题

一.遍历文件夹下所有文件,输出文件名 复制代码 代码如下: def traverse_dir(file_path)     if File.directory? file_path         Dir.foreach(file_path) do |file|             if file !="." and file !=".."                 traverse_dir(file_path+"/"+file)   

Ruby中用线程实现经典的生产者消费者问题代码实例_ruby专题

示例代码: 复制代码 代码如下: require "thread" puts "ProAndCon"    queue = Queue.new    #用队列Queue实现线程同步     producer = Thread.new do     10.times do |i|          sleep rand(i) # 让线程睡眠一段时间          queue << i          puts "#{i} produced&

Ruby编写HTML脚本替换小程序的实例分享_ruby专题

在一个文件里有很多以下内容: <p style="display:none">此题选D. .... .... .... </p> 而本人要实现的功能是将它替换成: <div style="display:none" class="sl_explain">此题选D. ..... ..... ..... </div> 这个东西看起来有点简单,但本人整整花了半天才实现此功能,主要是很久没写RUBY程序了,

Ruby使用设计模式中的代理模式与装饰模式的代码实例_ruby专题

代理模式 需求: 小明让小李替他追小丽(送洋娃娃,送花,送巧克力) 没有代理的代码: # -*- encoding: utf-8 -*- #追求者类 class Pursuit attr_accessor :mm def initialize(mm) @mm = mm end def give_dolls puts "#{mm.name} 送你洋娃娃" end def give_flowers puts "#{mm.name} 送你鲜花" end def give_