1. 程式人生 > >Python學習筆記:多程序

Python學習筆記:多程序

multiprocessing  --程序庫

Linux上可以用fwork,但是windowns不支援fwork,所以才需要用
multiprocessing垮平臺來使用多程序

父程序:當前執行的程序叫父程序

子程序:當前執行的程序中建立的程序叫子程序

引入程序模組
form multiprocessing import Process

建立子程序
p=Process(target=fun)

啟動子程序
p.start()

給子程序傳遞引數
p=Process(target=fun,args=("aaa",))

父程序等待子程序結束父程序在繼續執行
p.join()

全域性變數在多個程序中,不能共享?
原因:因為在父程序中建立子程序的時候對全域性變數做了複製。
即時子程序使用父程序的變數的時候,父程序的變數不受子程序的影響而改變。

程序間相互通訊?
如果想用程序間相互通訊,使用訊息佇列可以實現。
首先父程序建立佇列,並傳遞給子程序。

父程序建立佇列
q=Queue();

建立程序
pw=Process(target=write,args=(q,))
pr=Process(target=read,args=(q,))

啟動子程序
pw.start()
pr.start()