天天看點

并發運作時會出現同時操作一個檔案時候

修修心養養性利不可賺盡,福不可享盡,勢不可用盡

大綱

join方法使用程序鎖程序間通信

Process對象中的join方法

join方法表示等待子程序結束後再繼續往下運作,通常用于程序間的同步,等待的總時間是子程序中耗費時間最長的那個程序運作的時間。

join方法示範對比一下兩種不同結果

程序鎖

并發運作時會出現同時操作一個檔案時候,這時候會出現操作檔案内容混亂,需要加入鎖機制,由并發變成了串行。

import timeimport osfrom multiprocessing import Process, Lockdef work(lock):    # 擷取鎖    lock.acquire()    print('{0} is 開始工作'.format(os.getpid()))    time.sleep(2)    print('{0} is 結束工作'.format(os.getpid()))    # 釋放鎖    lock.release()lock=Lock()for i in range(3):    p=Process(target=work,args=(lock,))    p.start()

加入鎖機制變成串行時運作結果

程序間通信

在父程序中建立兩個子程序,一個往Queue裡寫資料,一個從Queue裡讀資料

Queue示例結果

如果本篇對您有幫助,請點贊轉發支援一下,謝謝。