python程序間通訊 Queue

2021-09-17 21:13:05 字數 968 閱讀 3346

process之間有時需要通訊,作業系統提供了很多機制來實現程序間的通訊。

可以使用multiprocessing模組的queue實現多程序之間的資料傳遞,queue本身是乙個訊息列隊程式,首先用乙個小例項來演示一下queue的工作原理:

#coding=utf-8

from multiprocessing import queue

q=queue(3) # 初始化乙個queue物件,最多可接收三條put訊息

q.put("訊息1")

q.put("訊息2")

print(q.full()) #false

q.put("訊息3")

print(q.full()) #true

# 因為訊息列隊已滿下面的try都會丟擲異常,第乙個try會等待2秒後再丟擲異常,第二個try會立刻丟擲異常

try:

q.put("訊息4",true,2)

except:

print("訊息列隊已滿,現有訊息數量:%s"%q.qsize())

try:

q.put_nowait("訊息4")

except:

print("訊息列隊已滿,現有訊息數量:%s"%q.qsize())

# 推薦的方式,先判斷訊息列隊是否已滿,再寫入

if not q.full():

q.put_nowait("訊息4")

# 讀取訊息時,先判斷訊息列隊是否為空,再讀取

if not q.empty():

for i in range(q.qsize()):

print(q.get_nowait())

執行結果:

false

true

訊息列隊已滿,現有訊息數量:3

訊息列隊已滿,現有訊息數量:3

訊息1訊息2

訊息3

Python多程序 程序間通訊

1.使用multiprocessing模組建立的程序之間的通訊 coding utf 8 queue類常用屬性和方法 init self,maxsize 1 qsize full empty put obj,block true,timeout none put nowait obj get blo...

Python基礎 程序間通訊

程序間通訊 windows下程序間通訊有很多種,例如 訊息佇列 共享記憶體 管道等等。python的multiprocessing模組包裝了底層的機制,提供了queue pipes等多種方式來交換資料。multiprocessing.pipe 即管道模式,呼叫pipe 返回管道的兩端的connect...

python中程序間通訊

程序間通訊 磁碟互動 速度慢 不安全 socket 本地套接字 管道 訊息列隊 共享記憶體 訊號 訊號量 套接字 管道通訊 pipe 在記憶體中開闢一塊空間,對多個程序可見,通過管道 多個程序進行通訊 multiprocessing pipe fd1,fd2 pipe duplex true 功能 ...