这是一个用于python中多线程的简单代码。
p1 = multiprocessing.Process(target=f1, args=('f1'))
p2 = multiprocessing.Process(target=f2, args=('f2'))
p1.start()
# starting process 2
p2.start()
# wait until process 1 is finished
p1.join()
# wait until process 2 is finished
p2.join()
但在运行代码后,我得到了以下错误:
BrokenPipe错误:[Erno 32]管道破裂
我搜索了SO和其他网站,常见的答案是包括以下片段:
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE, SIG_DFL)
但是当我运行这个时,我会得到以下错误:
ImportError:无法从"signal"(C:\Users\u65988\AppData\Local\Continum\anaconda3\lib\signal.py(导入名称"SIGPIPE">
我尝试检查所有解决方案,但没有一个成功!请帮我解决这个问题!
两种功能供参考:
def f1 (string):
print(string)
def f2 (string):
print(string)
在您想要运行的main.py/script中,您必须编写
if __name__ == "__main__":
start_process_1()
start_process_2()
join_process_1()
join_process_2()
这是一个特定于Windows平台的错误,如果函数调用被封装/放入if__name__ == "__main__"
中,就会相应地得到解决。