2017-08-15 52 views
0

比方说,我这样做:终止过程中本身在Python

from multiprocessing import Process 

def a(): 
    #Do something 

x = Process(target = a) 
x.start() 

我想用x.terminate()定义的功能,但内要做到这一点,我需要添加x作为参数,而x限定和那是不可能的。

所以我的问题是,我如何终止函数内的过程?

回答

2

只需returna,过程将结束。 (隐式运行脱功能的端返回计数了。)

你需要一个if __name__ == '__main__'警卫安全进程的创建,但:

if __name__ == '__main__': 
    x = Process(target=a) 
    x.start() 
+0

所以,如果我做了'x.isalive()' ,它会说它不是? – Krishi

+0

@Krishi:在'a'返回后,是的。 – user2357112

+0

我现在遇到的问题是定义函数之后的代码多次运行。我的意思是,在我的实际计划中,我创建了4个流程。尽管在每个已定义函数的末尾都有一个返回值,但它之后的代码一次运行4次。 – Krishi