Python高级编程之消息队列(Queue)与进程池(Pool)实例详解

Queue消息队列

1.创建

import multiprocessing
queue = multiprocessing.Queue(队列长度)

2.方法

3.进程通信

嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“01”领取资料!了解跟多赚钱小方法!

因为进程间不共享全局变量,所以使用Queue进行数据通信,可以在父进程中创建两个字进程,一个往Queue里写数据,一个从Queue里取出数据。

例:

执行结果:

Pool进程池

初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会用之前的进程来执行新的任务。

1.创建

import multiprocessing
pool = multiprocessing.Pool(最大进程数)

2.方法

3.进程池内通信

创建进程池内Queue消息队列通信

import multiprocessing 
Queue:queue = multiprocessing.Manager().Queue() 

例:

import multiprocessing 
import time

写入数据的方法

def write_data(queue): 
# for循环 向消息队列中写入值 
for i in range(5): 
# 添加消息 
queue.put(i) 
print(i) 
time.sleep(0.2) 
print("队列已满~")

创建读取数据的方法

运行结果:

4.案例(文件夹copy器)

代码:

运行结果:

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取

相关文章

什么是队列?(Python队列)

前言上篇文章介绍了 Python 中的多线程。今天来介绍下编程中常会用到的一个数据结构 - 队列。不知道大家是否还记得什么是数据结构呢?在很早很早以前,Python小课堂的初期,讲了许多 Python...

【模拟消息队列】Python 实现

import heapq def simulate_message_queue(): # 读取输入 message_line = input().strip().split()...

python并发编程-队列介绍

进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道(不推荐使用),这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现)...

浅析 Python 中的队列类

Python中的队列源代码位于 lib/queue.py 「链接」中该queue模块实现了多生产者、多消费者队列。当必须在多个线程之间安全地交换信息时,queue模块特别有用。该Queue模块中的类实...

Python | 数据结构 - 队列

队列的 Python 代码实现队列是一种先进先出的数据类型。应用场景:我们的计算机实验室有 30 台计算机与一台打印机联网。当学生想要打印时,他们的打印任务与正在等待的所有其他打印任务 “一致”。第一...