1. 程式人生 > >進程數據共享

進程數據共享

傳遞 pro 直接 .get pan ssi sta end 需要

進程數據共享:

1、線程數據,可以直接訪問

import threading
import queue
#多線程訪問時,q為共享;
def thr_f():
q.put(["1,2,3"])
if __name__=="__main__":
q = queue.Queue()
t = threading.Thread(target=thr_f)
t.start()
print (q.get())
2、進程之間的訪問方式1(Queue):
#當多進程訪問時,道路相同;
#只是需要將q做為參數,傳遞給子進程;
from multiprocessing import Queue,Process


def mul_f(qq):
qq.put([1,2,3])

if __name__ =="__main__":
q = Queue()
p = Process(target=mul_f,args = (q,))
p.start()
print (q.get())
3、進程之間數據訪問方式2(管道):
#類似電話線的2端,一端發送一端接收.
from multiprocessing import Process,Pipe

def Pip_f(conn):
conn.send("世界你好!")
print (conn.recv())
conn.close()


if __name__=="__main__":
par_conn,chi_conn = Pipe()
p = Process(target=Pip_f,args=(chi_conn,))
par_conn.send("kaka!")
p.start()
print (par_conn.recv())
p.join()
 

進程數據共享