2017-08-15 51 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