process的pipe管道通信,一直不运行,Pycharm也没有提示出现语法错误

process的pipe管道通信,一直不运行,Pycharm也没有提示出现语法错误

import multiprocessing
from multiprocessing import Process, Pipe,current_process

company = "simon"
class ProcessCustomized(Process):
    """
    进程对象的类
    """

    def __init__(self, name, connection1):
        """
        进程对象初始化属性
        :param name:进程对象名称
        """
        Process.__init__(self)
        self.name = name
        self.connection1 = connection1

    def method1(self):
        """
        进程对象的实例方法
        :return: 进程对象的具体执行结果
        """
        sub_info = "Hello!"
        self.connection1.send(sub_info)
        print(f"进程1__{current_process().pid}发送数据:{sub_info}")
        print(f"来自进程2:{self.connection1.recv()}")


class ProcessCustom(Process):
    """
    进程对象的类
    """

    def __init__(self, name, connection2):
        """
        进程对象初始化属性
        :param name:进程对象名称
        """
        Process.__init__(self)
        self.name = name
        self.connection2 = connection2

    def method2(self):
        """
        进程对象的实例方法
        :return: 进程对象的具体执行结果
        """
        sub_info = "你好!"
        self.connection2.send(sub_info)
        print(f"进程2__{multiprocessing.current_process().pid}发送数据:{sub_info}")
        print(f"来自进程1:{self.connection2.recv()}")


if __name__ == '__main__':
    # 创建管道
    conn1 = Pipe()
    conn2 = Pipe()
    # 创建进程对象
    p1 = ProcessCustomized(name="p1", connection1=conn1)
    p2 = ProcessCustom(name="p2", connection2=conn2)
    # 进程启动
    p1.start()
    p2.start()

img

无运行结果 也没有报错

目前找不到解决方法

你这个就是初始化了,也没调用啥,start后面啥代码都没有啊。


from multiprocessing import Pipe

if __name__ == "__main__":
    (pipe_left, pipe_right) = Pipe()

    pipe_left.send("Hello, I'm LEFT!")
    pipe_right.send("Hello, I'm RIGHT!")

    print("pipe_left received {}".format(pipe_left.recv()))
    print("pipe_right received {}".format(pipe_right.recv()))

    pipe_left.close()
    pipe_right.close()

你这个没有调用起来,函数逻辑检查一下