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()
无运行结果 也没有报错
目前找不到解决方法
你这个就是初始化了,也没调用啥,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()
你这个没有调用起来,函数逻辑检查一下