python 多程序(十四 3)

2021-10-20 05:53:25 字數 1426 閱讀 7090

因為多程序是不同的空間,所以無法像多執行緒一樣共享全域性變數和資源。但可以使用依賴queue佇列實現哦!!

訊息佇列:簡單理解是乙個倉庫,裡面存放多程序共享資源;

作用:可以與不同程序進行互動,達到讓更多的程序之間交流,互動的母的;

本質:理解是乙個倉庫,可以往裡面放資料.

特性:拿資料依賴?

是索引 or 變數名?

不是,其實是靠的順序,先進先出,後進後出 (購買火車票排隊)

cba   > 佇列(cba)  >   cba

import  multiprocessing

#建立佇列物件,不傳值,預設空間無限大

qu=multiprocessing.queue()

#建立佇列物件,只能放3個資料

qu=multiprocessing.queue(3)

# (1) 往佇列裡面放資料

qu.put()

# (2) 檢視佇列是否滿了(滿了 返回true)

qu.full()

# (3) 從佇列裡面取資料 >>> 先進先出, 後進後出

qu.get() # 佇列裡面如果裡面沒有資料,,,陷入等待狀態....等待其他程序往裡面放資料

qu.get_nowait() # 取值,不等待直接報錯

# 可以做異常處理,,沒有值就報錯,,捕獲異常,,就可以得到隊列為空的資訊......

# (4) 判斷佇列是否為空 (為空,返回true)

qu.empty()

#建立佇列物件,只能放3個資料

qu=multiprocessing.queue(3)

# 往佇列裡面放資料

qu.put(100)

qu.put("mike")

qu.put(['a','b','c'])

#佇列檢視

print(qu.full())

#取資料(先進先出,後進後出)

print(f'從佇列中取出第1個資料:')

print(f'從佇列中取出第2個資料:')

print(f'從佇列中取出第3個資料:')

#佇列是否為空

print(qu.empty())

#佇列已空,還要取出資料

# qu.get() #程式卡住,等待佇列裡面放資料,有了就繼續取值,程式繼續往下執行

#判斷為空,就不再取資料

if(qu.empty()==false):

#隊列為空,就丟擲異常

python多程序 python多程序

當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...

python多程序 Python多程序實踐

建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...

python多程序 Python多程序程式設計詳解

本文 在 python 3.6 環境下測試通過。多程序 multiprocessing 模組是在 python 2.6 版本中加入的,和多執行緒 threading 模組類似,都是用來做並行運算的。不過python既然有了threading,為什麼還要搞乙個multiprocessing呢?這是因為...