In [ ]:
 

进程间通信(脚本执行才显示输出)¶

In [1]:
from multiprocessing import Process, Pipe
from multiprocessing.connection import PipeConnection
import time


def sender(conn: PipeConnection):
    conn.send("Hello from sender1")
    conn.send({"a": "b"})
    print("Hello from sender")
    msg = conn.recv()
    print("Received_sender:", msg)
    time.sleep(1)
    conn.close()

def receiver(conn: PipeConnection):
    msg = conn.recv()
    print("Received1:", msg)
    msg = conn.recv()
    print("Received2:", msg)
    conn.send("Hello from receiver")
    print("Hello from receiver")
    time.sleep(1)
    conn.close()


if __name__ == "__main__":
    parent_conn, child_conn = Pipe()
    p1 = Process(target=sender, args=(child_conn,))
    p2 = Process(target=receiver, args=(parent_conn,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()
elif __name__ == "__mp_main__":
    print("正在新建子进程")