Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

Queue消息隊列

1.創建

import multiprocessing
queue = multiprocessing.Queue(隊列長度)

2.方法

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

3.進程通信

嗨嘍:正在學習python的小夥伴或者打算學習的,可以私信小編“01”領取資料!瞭解跟多賺錢小方法!

因為進程間不共享全局變量,所以使用Queue進行數據通信,可以在父進程中創建兩個字進程,一個往Queue裡寫數據,一個從Queue裡取出數據。

例:

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

執行結果:

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

Pool進程池

初始化Pool時,可以指定一個最大進程數,當有新的請求提交到Pool中時,如果池還沒有滿,那麼就會創建一個新的進程用來執行該請求;但如果池中的進程數已經達到指定的最大值,那麼該請求就會等待,直到池中有進程結束,才會用之前的進程來執行新的任務。

1.創建

import multiprocessing
pool = multiprocessing.Pool(最大進程數)

2.方法

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

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("隊列已滿~")

創建讀取數據的方法

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

運行結果:

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

4.案例(文件夾copy器)

代碼:

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

運行結果:

Python高級編程之消息隊列(Queue)與進程池(Pool)實例詳解

最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“01”即可領取


分享到:


相關文章: