问题:当流程1完成时,如何停止流程2
更长的版本:我制作了一个脚本,可以多处理2个函数,我真的不知道如何在第一个进程完成后停止第二个进程
我的代码:
def printHelloWorld(): # So this takes 5.0053 seconds to completly run
print("Hello World.")
time.sleep(5)
print("Hello World. (after 5 seconds)")
def printText(): # And this takes 10.0102 seconds to completly run
print("Some text.")
time.sleep(10)
print("Some text. (after 10 seconds)")
if __name__ == "__main__": # I multiprocessed these 2 functions to reduce time.
# But what I actually want is to terminate process 2 when process 1 has finished.
p1 = Process(target = printHelloWorld)
p2 = Process(target = printText)
p1.start()
p2.start()
p1.join()
p2.join()
我尝试了一个while循环来检查何时p1.is_alive == False
,然后我应该终止进程2,但它不起作用。我也搜索了答案,但没有找到符合我要求的答案
谢谢你的阅读/回答
让我澄清一些事情:如果我不能正确解释,我很抱歉,但我想问的是,既然不再需要,我如何检查哪一个已经完成了第一个过程并终止第二个过程
示例:如果我们不知道函数1和2的执行时间(两个函数都在并行进程中),该怎么办。因此,一旦第一个进程停止,我希望另一个进程停止。我该怎么做?我希望现在能清楚地描述这一点。再次为混乱感到抱歉
我建议你利用图书馆。它包装了Python的标准库线程和多处理对象。但是它很有可能取消正在运行的呼叫
你试过
Process.terminate
吗相关问题 更多 >
编程相关推荐