淺談Python 多進程默認不能共享全局變量的問題
主進程與子進程是并發(fā)執(zhí)行的,進程之間默認是不能共享全局變量的(子進程不能改變主進程中全局變量的值)。如果要共享全局變量需要用(multiprocessing.Value("d",10.0),數(shù)值)(multiprocessing.Array("i",[1,2,3,4,5]),數(shù)組)(multiprocessing.Manager().dict(),字典)(multiprocessing.Manager().list(range(5)))。進程通信(進程之間傳遞數(shù)據(jù))用進程隊列(multiprocessing.Queue(),單向通信),管道( multiprocessing.Pipe() ,雙向通信)。
import multiprocessing
import time
import os
datalist=['+++'] #全局變量,主進程與子進程是并發(fā)執(zhí)行的,他們不能共享全局變量(子進程不能改變主進程中全局變量的值)
def adddata():
global datalist
datalist.append(1)
datalist.append(2)
datalist.append(3)
print("子進程",os.getpid(),datalist)
if __name__=="__main__":
p=multiprocessing.Process(target=adddata,args=())
p.start()
p.join()
datalist.append("a")
datalist.append("b")
datalist.append("c")
print("主進程",os.getpid(),datalist)
以上這篇淺談Python 多進程默認不能共享全局變量的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
OPENAI?API?微調(diào)?GPT-3?的?Ada?模型
這篇文章主要為大家介紹了OPENAI?API?微調(diào)?GPT-3?的?Ada?模型使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
利用python微信庫itchat實現(xiàn)微信自動回復(fù)功能
最近發(fā)現(xiàn)了一個特別好玩的Python 微信庫itchat,可以實現(xiàn)自動回復(fù)等多種功能,下面這篇文章主要給大家介紹了利用python微信庫itchat實現(xiàn)微信自動回復(fù)功能的相關(guān)資料,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-05-05
基于python內(nèi)置函數(shù)與匿名函數(shù)詳解
下面小編就為大家分享一篇基于python內(nèi)置函數(shù)與匿名函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Python實現(xiàn)Windows和Linux之間互相傳輸文件(文件夾)的方法
下面小編就為大家?guī)硪黄狿ython實現(xiàn)Windows和Linux之間互相傳輸文件(文件夾)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05

