在Python中同时运行两个函数



这是一个用于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__"中,就会相应地得到解决。

相关内容

  • 没有找到相关文章

最新更新