同新方法
通过队列方式通信
子进程中通过queue作为参数传递到函数中,在函数中通过q.put将数据发送给主进程,主进程通过 q.get()获取到数据
通过管道的方式通信
类似socket的conn
from multiprocessing import Process,Pipe
def f(conn):
conn.send("this is a message from son")
response = conn.recv()
print("response",response)
conn.close()
print("q_ID2",id(conn))
if __name__ == "__main__":
parent_conn,child_conn = Pipe() #双向管道
print("q_ID1:",id(child_conn,))
p = Process(target=f,args=(child_conn,))
p.start()
print(parent_conn.recv())
parent_conn.send("this is a message from parent")
p.join()
'''
q_ID1: 174486304
this is a message from son
response this is a message from parent
q_ID2 174683696
'''