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"
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

时间: 2024-09-24 21:23:45

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

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&q

JAVA线程中的生产者和消费者问题

生产者消费者问题是研究多线程时绕不开的问题,描述的是有一块生产者和消费者共享的有界缓冲区,生产者往缓冲区放入产品,消费者从缓冲区取走产品,这个过程可以无休止的执行,不能因缓冲区满生产者放不进产品而终止,也不能因缓冲区空消费者无产品可取而终止. 解决生产者消费者问题的方法有两种,一种是采用某种机制保持生产者和消费者之间的同步,一种是在生产者和消费者之间建立一个管道.前一种有较高的效率并且可控制性较好,比较常用,后一种由于管道缓冲区不易控制及被传输数据对象不易封装等原因,比较少用. 同步问题的核心在

Java并发编程中的生产者与消费者模型简述_java

概述对于多线程程序来说,生产者和消费者模型是非常经典的模型.更加准确的说,应该叫"生产者-消费者-仓库模型".离开了仓库,生产者.消费者就缺少了共用的存储空间,也就不存在并非协作的问题了. 示例定义一个场景.一个仓库只允许存放10件商品,生产者每次可以向其中放入一个商品,消费者可以每次从其中取出一个商品.同时,需要注意以下4点: 1.  同一时间内只能有一个生产者生产,生产方法需要加锁synchronized. 2.  同一时间内只能有一个消费者消费,消费方法需要加锁synchroni

java线程间通信[实现不同线程之间的消息传递(通信),生产者和消费者模型]

线程通信,线程之间的消息传递: 多个线程在操作同一个资源,但对共享资源的操作动作不同:它们共享同一个资源,互为条件,相互依赖,相互通信让任务向前推进. 线程的同步,可以解决并发更新同一个资源,实现线程同步;但不能用来实现线程间的消息传递. 线程通信生产者和消费者和仓库是个典型模型: 生产者:没有生产之前通知消费者等待,生产产品结束之后,马上通知消费者消费 消费者:没有消费之前通知生产者等待,消费产品结束之后,通知生产者继续生产产品以供消费 线程通信:使用java中Object中提供的: publ

使用Lock来实现生产者和消费者问题

前面写过:synchronize来实现生产者和消费者问题 现在用Lock来实现它 1 package com.thread; 2 3 import java.util.LinkedList; 4 import java.util.concurrent.locks.Condition; 5 import java.util.concurrent.locks.Lock; 6 import java.util.concurrent.locks.ReentrantLock; 7 8 9 /* 10 使用

java 多线程生产者和消费者模式,怎么实现边生产边消费?

问题描述 java 多线程生产者和消费者模式,怎么实现边生产边消费? 如何使用java语言开发处理一批数据,使处理时间变快,而又不遗漏数据呢?? 解决方案 看瓶颈在哪里,如果是cpu.io的开销,性能不可能无限提高.如果存在网络延迟等,可以用多线程隐藏延迟,达到提高性能的目的. 解决方案二: 你说的什么叫边生产边消费呢?生产者消费者设计实现设计中生产者把数据放入队列,消费者从队列中获取数据处理,消除了生产者和消费者之间的代码依赖.该模式将生产数据的过程与使用数据的过程解耦,简化了由于这两个过程不

生产者消费者问题-秒杀多线程中生产者与消费者问题并行问题

问题描述 秒杀多线程中生产者与消费者问题并行问题 在模仿博文秒杀多线程问题生产者与消费者问题写多线程程序,实现了多线程的编程,但是有没有实现多线程的并行处理呢?体现在哪里?理论上是不是仍是串行实现?求大神指教 解决方案 你说的是哪一篇博客中的代码,贴一下链接 解决方案二: [多线程](九)生产者消费者问题

协调数据的生产者和消费者:医疗实例

我们都有各自的数据治理战争事迹.一些部门生成数据,另一些部门消费数据.每个部门都有各自的狭隘利益,并且可能与公司其余部门的利益不同步.然而,成功的治理方案会协调数据生产者和消费者的利益,将信息视作企业资产. 在任何数据治理计划中,首先都要形成组织意识.数据生产商往往无法了解自身决策对数据消费者产生的影响.数据治理计划负责将数据生产者和消费者整合在一起.下面这个简单图表可以展示数据质量拙劣对下游http://www.aliyun.com/zixun/aggregation/13476.html"&

浅谈java线程中生产者与消费者的问题_java

一.概念 生产者与消费者问题是一个金典的多线程协作的问题.生产者负责生产产品,并将产品存放到仓库:消费者从仓库中获取产品并消费.当仓库满时,生产者必须停止生产,直到仓库有位置存放产品:当仓库空时,消费者必须停止消费,直到仓库中有产品. 解决生产者/消费者问题主要用到如下几个技术:1.用线程模拟生产者,在run方法中不断地往仓库中存放产品.2.用线程模拟消费者,在run方法中不断地从仓库中获取产品.3  . 仓库类保存产品,当产品数量为0时,调用wait方法,使得当前消费者线程进入等待状态,当有新