广告
返回顶部
首页 > 资讯 > 后端开发 > Python >生产者消费者
  • 526
分享到

生产者消费者

生产者消费者 2023-01-30 22:01:02 526人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1、概念 所谓,生产者与消费者模型,本质上是把进程通信的问题分开考虑 生产者,只需要往队列里面丢东西(生产者不需要关心消费者) 消费者,只需要从队列里面拿东西(消费者也不需要关心生产者) 1 # 多线程实现生产者消费者模型 2

1、概念

所谓,生产者与消费者模型,本质上是把进程通信的问题分开考虑

生产者,只需要往队列里面丢东西(生产者不需要关心消费者)

消费者,只需要从队列里面拿东西(消费者也不需要关心生产者)

 1 # 多线程实现生产者消费者模型
 2 import threading
 3 import random
 4 import queue
 5 import time
 6 
 7 
 8 class Producer(threading.Thread):
 9     def __init__(self, que):
10         super().__init__()
11         self.que = que
12 
13     def run(self):
14         while True:
15             data = random.randint(0,100)
16             print("生产者生产了:", data)
17             self.que.put(data)
18             time.sleep(1)
19 
20 
21 class Consumer(threading.Thread):
22     def __init__(self, que):
23         super().__init__()
24         self.que = que
25 
26     def run(self):
27         while True:
28             item = self.que.get()
29             print("消费者消费了:", item)
30 
31 
32 if __name__ == '__main__':
33     q = queue.Queue()
34     pro = Producer(q)
35     con = Consumer(q)
36     pro.start()
37     con.start()
线程生产者消费者实例 面向对象
 1 import threading
 2 import random
 3 import time
 4 import queue
 5 
 6 
 7 def producer(que):
 8     while True:
 9         data = random.randint(0,100)
10         print("生产者生产了:", data)
11         que.put(data)
12         time.sleep(1)
13 
14 
15 def consumer(que):
16     while True:
17         item = que.get()
18         print("消费者消费了:", item)
19 
20 
21 if __name__ == '__main__':
22     q = queue.Queue()
23     pro_td = threading.Thread(target=producer, args=(q, ))
24     pro_td.start()
25     con_td = threading.Thread(target=consumer, args=(q, ))
26     con_td.start()
多线程生产者消费者 普通函数
 1 import multiprocessing
 2 import random
 3 import time
 4 
 5 
 6 def producer(que):
 7     while True:
 8         data = random.randint(0,100)
 9         print("生产者生产了:", data)
10         que.put(data)
11         time.sleep(1)
12 
13 
14 def consumer(que):
15     while True:
16         item = que.get()
17         print("消费者消费了:", item)
18 
19 
20 if __name__ == '__main__':
21     q = multiprocessing.Manager().Queue()
22     pro_td = multiprocessing.Process(target=producer, args=(q, ))
23     pro_td.start()
24     con_td = multiprocessing.Process(target=consumer, args=(q, ))
25     con_td.start()
26     pro_td.join()
多进程生产者消费者 函数
 1 import multiprocessing
 2 import random
 3 import time
 4 
 5 
 6 def producer(que):
 7     while True:
 8         data = random.randint(0,100)
 9         print("生产者生产了:", data)
10         que.put(data)
11         time.sleep(1)
12 
13 
14 def consumer(que):
15     while True:
16         item = que.get()
17         print("消费者消费了:", item)
18 
19 
20 if __name__ == '__main__':
21     q = multiprocessing.Manager().Queue()
22     pro_td = multiprocessing.Process(target=producer, args=(q, ))
23     pro_td.start()
24     con_td = multiprocessing.Process(target=consumer, args=(q, ))
25     con_td.start()
26     pro_td.join()
多进程 面向对象
 1 # gevent 协程实现生产者消费者
 2 import gevent
 3 from gevent import monkey; monkey.patch_all()
 4 import random
 5 from gevent.queue import Queue
 6 import time
 7 
 8 
 9 def producer(que):
10     while True:
11         data = random.randint(0, 100)
12         print("生产者生产了:", data)
13         q.put(data)
14         time.sleep(1)
15 
16 
17 def consumer(que):
18     while True:
19         item = que.get()
20         print("消费者消费了:", item)
21 
22 
23 if __name__ == '__main__':
24     q = Queue()
25     pro = gevent.spawn(producer, q)
26     con = gevent.spawn(consumer, q)
27     gevent.joinall([pro, con])
gevent实现生产者消费者

 

--结束END--

本文标题: 生产者消费者

本文链接: https://www.lsjlt.com/news/179850.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 生产者消费者
    1、概念 所谓,生产者与消费者模型,本质上是把进程通信的问题分开考虑 生产者,只需要往队列里面丢东西(生产者不需要关心消费者) 消费者,只需要从队列里面拿东西(消费者也不需要关心生产者) 1 # 多线程实现生产者消费者模型 2 ...
    99+
    2023-01-30
    生产者 消费者
  • 爬虫——生产者消费者
    结构 生产者生成网址并放入队列 多个消费者从队列中取出网址 1 from queue import Queue 2 import time, threading, requests 3 4 url_base = 'ht...
    99+
    2023-01-30
    爬虫 生产者 消费者
  • kafka-3python生产者和消费者
    程序分为productor.py是发送消息端,consumer为消费消息端,启动的时候先启动product再启动consumer,毕竟只有发了消息,消费端才有消息可以消费,productor.py#!/usr/bin/env python2...
    99+
    2023-01-31
    生产者 消费者 kafka
  • 生产者、消费者模型---Queue类
    Queue队列在几乎每种编程语言都会有,python的列表隐藏的一个特点就是一个后进先出(LIFO)队列。而本文所讨论的Queue是python标准库queue中的一个类。它的原理与列表相似,但是先进先出(FIFO)队列。而内部实现更为完...
    99+
    2023-01-30
    生产者 模型 消费者
  • Java中的生产者/消费者模型
    一、什么是生产者/消费者模型 生产者-消费者模型(Producer-Consumer problem)是一个非常经典的多线程并发协作的模型。 比如某个模块负责生产数据,而另一个模块负责处理数据。产生数据的模块就形象地被称为生产者;而处理数据...
    99+
    2023-10-05
    java 多线程 wait notify notifyAll
  • python 的生产者和消费者模式
    目录python 的生产者和消费者模式一、生产者消费者模式概述二、为什么使用生产者消费者模式三、什么是生产者消费者模式四、代码案例1、定义一个生产者2、定义一个消费者3、定义一个队列...
    99+
    2022-11-12
  • java 中怎么实现生产者消费者
    今天就跟大家聊聊有关java 中怎么实现生产者消费者,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。生产者消费者图存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,...
    99+
    2023-06-17
  • 生产者与消费者+Queue(线程安全)
    from queue import Queue from lxml import etree import requests from urllib import request from threading import Thread...
    99+
    2023-01-30
    生产者 线程 消费者
  • Golang rabbitMQ生产者消费者实现示例
    目录消费者生产者消费者 package main import ( "fmt" "github.com/streadway/amqp" ) func failOnError(er...
    99+
    2022-11-13
  • Java多线程:生产者与消费者案例
    目录前言工具知识点设计思路具体步骤总结前言 想象一下生活中哪些是和线程沾边的?饭店炒菜就是一个很好的例子 首先客人要吃菜,前提是厨师要炒好,也就是说,厨师不炒好的话客人是没有饭菜的。...
    99+
    2022-11-12
  • Java 生产者/消费者问题实例详解
    生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况:存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去...
    99+
    2023-05-31
    java 生产者消费者 ava
  • golang生产者消费者模式怎么实现
    在Go语言中,可以使用goroutine和channel来实现生产者消费者模式。 首先,我们定义一个包含生产者和消费者的函数: fu...
    99+
    2023-10-20
    golang
  • Golang rabbitMQ生产者和消费者怎么实现
    今天小编给大家分享一下Golang rabbitMQ生产者和消费者怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-06-30
  • PHP实现生产者与消费者的案例
    这篇文章主要介绍PHP实现生产者与消费者的案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP中使用Kafka需要RdKafka扩展,而RdKafka依赖于librdkafka,所以这两个我们都需要安装,具体安装...
    99+
    2023-06-14
  • java中BlockingQueue如何实现生产者消费者
    这篇文章主要为大家展示了“java中BlockingQueue如何实现生产者消费者”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中BlockingQueue如何实现生产者消费者”这篇文章...
    99+
    2023-05-30
    java blockingqueue
  • golang 并发编程之生产者消费者详解
    golang 最吸引人的地方可能就是并发了,无论代码的编写上,还是性能上面,golang 都有绝对的优势 学习一个语言的并发特性,我喜欢实现一个生产者消费者模型,这个模型非常经典,适...
    99+
    2022-11-12
  • flink 使用sql实现kafka生产者和消费者
    maven依赖 UTF-8 1.8 1.8 1.11.2 1.1.7 1.7.25 ...
    99+
    2015-10-30
    flink 使用sql实现kafka生产者和消费者 数据库入门 数据库基础教程 数据库 mysql
  • Python教程之生产者消费者模式解析
    为什么使用生产者消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者...
    99+
    2022-11-12
  • Queue 实现生产者消费者模型(实例讲解)
    Python中,队列是线程间最常用的交换数据的形式。 Python Queue模块有三种队列及构造函数: 1、Python Queue模块的FIFO队列先进先出。 class Queue.Queue(max...
    99+
    2022-06-04
    生产者 实例 模型
  • java中生产者消费者问题和代码案例
    目录应用场景分析解决方法管程法信号灯法总结应用场景 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作