Python多程序1 乙個多程序例項

2021-10-02 04:21:31 字數 2527 閱讀 1449

學習**

分類目錄——多程序

多程序與多執行緒類似,無論是在理論還是操作上,我在這裡就多執行緒寫了一點東西。

多程序與多執行緒最大的區別是,多程序是真正意義上的/物理層面上的並行執行,每個程序會被分配到足夠的(在實際有那麼多的前提下)資源單獨進行運算。而多執行緒則是多個程序間共享資源,通過分時獲得資源的一種偽並行。

下面就乙個例項來演示python進行多程序操作

import multiprocessing as mp

import threading as td

import time

defjob

(ss)

:print

('我是'

, ss)

print

(ss,

'start'

) time.sleep(1)

# 做一下延遲,為了觀察各程序的執行順序

print

(ss,

'end'

)if __name__ ==

'__main__'

:# mp多程序只能main下執行,

job(

'主程序step1############'

) p1 = mp.process(target=job, args=

('新程序》',)

)# 建立乙個程序

# 注意當只有乙個引數的時候,一定要在引數後面加乙個逗號,因為args需要是乙個可以迭代的參量

p1.start(

)# 開始執行新程序

# p1.join() # 將程序宣告為關鍵活動,讓後續操作等待程序p1

job(

'主程序step2$$$$$$$$$$$$'

)

output1(將p1.join(

)注釋掉的結果)

我是 主程序step1############

主程序step1############ start

主程序step1############ end

我是 主程序step2$$$$$$$$$$$$

主程序step2$$$$$$$$$$$$ start

我是 新程序》

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>

新程序》

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

> start

主程序step2$$$$$$$$$$$$ end

新程序》

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

> end

output2(不注釋p1.join(

)的結果)

我是 主程序step1############

主程序step1############ start

主程序step1############ end

我是 新程序》

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>

新程序》

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

> start

新程序》

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

>>

> end

我是 主程序step2$$$$$$$$$$$$

主程序step2$$$$$$$$$$$$ start

主程序step2$$$$$$$$$$$$ end

建立新程序p1=mp.process(target=執行函式名, args=引數列表)

執行新程序p1.start()

將新程序加入關鍵活動p1.join()

解釋一下p1.join()這一步操作,將新程序加入關鍵活動這是我自定義的一種說法,我們知道的圖論中有關鍵路徑這樣一種概念,關鍵路徑上的活動叫做關鍵活動,關鍵活動的意義即是該活動完成之前,後續的活動無法繼續,p1.join()就是對p1做這樣一種宣告,p1是關鍵互動,後續的操作要等p1完成之後才能進行。這一步的執行效果在output2中得到了體現,我們可以看到,主程序step2是在 新程序 end之後才開始執行的。

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呢?這是因為...