import multiprocessing
import time
def func1(conn1):
sub_info="Hello!"
print(f"进程1--{multiprocessing.current_process().pid} 发送参数{sub_info}")
time.sleep(1)
conn1.send(sub_info)
print(f"来自线程2:{conn1.recv()}")
time.sleep(1)
def func2(conn2):
sub_info="你好!"
print(f"进程2--{multiprocessing.current_process().pid} 发送参数{sub_info}")
time.sleep(1)
conn2.send(sub_info)
print(f"来自线程1:{conn2.recv()}")
time.sleep(1)
if __name__ == '__main__':
#创建管道
conn1,conn2=multiprocessing.Pipe()
#创建子进程
process1=multiprocessing.Process(target=func1,args=("conn1",))
process2=multiprocessing.Process(target=func2,args=("func2",))
#启动进程
process1.start()
process2.start()
进程2--59024发送参数你好!
进程1--51220发送参数Hello!
Process Process-2:
Process Process-1:
Traceback (most recent call last):
Traceback (most recent call last):
File "D:\Anaconda\anaconda3\envs\python\lib\multiprocessing\process.py", line 315, in _bootstrap
self.run()
File "D:\Anaconda\anaconda3\envs\python\lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "D:\Pycharm\python学习\python系统化学习\网络与并发编程\Pipe实现进程间的通信.py", line 9, in func1
conn1.send(sub_info)
File "D:\Anaconda\anaconda3\envs\python\lib\multiprocessing\process.py", line 315, in _bootstrap
self.run()
File "D:\Anaconda\anaconda3\envs\python\lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
AttributeError: 'str' object has no attribute 'send'
File "D:\Pycharm\python学习\python系统化学习\网络与并发编程\Pipe实现进程间的通信.py", line 17, in func2
conn2.send(sub_info)
AttributeError: 'str' object has no attribute 'send'
这个哪里错了呢