1.共享数值型
from multiprocessing import Process, Value
def func(num):
num.value=11 #子进程改变数值的值,主进程跟着改变
if __name__=="__main__":
num=multiprocessing.Value("d",10.0) #在内存中开辟共享空间,所以要指定类型"d"
print(num.value)
p=multiprocessing.Process(target=func,args=(num,))
p.start()
p.join()
print(num.value)
2.共享数组型,列表型
import multiprocessing
def func(num):
num[0]=0
if __name__=="__main__":
num=multiprocessing.Array("i",[1,2,3,4,5])
print(num[:])
p=multiprocessing.Process(target=func,args=(num,))
p.start()
p.join()
print(num[:])
3.共享列表
import multiprocessing
def func(mylist):
mylist.append("aaaaaa")
if __name__=="__main__":
mylist=multiprocessing.Manager().list()
p=multiprocessing.Process(target=func,args=(mylist,))
p.start()
p.join()
print(mylist)
4.共享字典
import multiprocessing
def func(mydict):
mydict["index1"]="aaaaaa"
if __name__=="__main__":
mydict=multiprocessing.Manager().dict()
p=multiprocessing.Process(target=func,args=(mydict,))
p.start()
p.join()
print(mydict)
5.pipe
https://docs.python.org/3/library/multiprocessing.html?highlight=multiprocessing#multiprocessing.Pipe
6.queue
https://docs.python.org/3/library/multiprocessing.html?highlight=multiprocessing#multiprocessing.Queue
进程安全
https://blog.csdn.net/weixin_30877493/article/details/98512260