2012-06-28 81 views
1

我有一些python代碼,目前通過許多線程並行執行計算來執行昂貴的計算。在給定的時間段內,許多線程都會被創建並且在線運行,這些線程共享相同的代碼,這些代碼在線程的run方法中明確聲明。我的問題是如何在運行方法結束時停止/終止一個線程? (運行只調用一次)我需要這樣做,以便爲下一批計算創建更多線程。從內部線程中殺死python線程的方法?

#Example 

class someThread(threading.Thread): 
    def __init__(self): 
     #some init code 
    def run(self): 

     #Explicitly Stated Code without constant loops 

     #Something performed to stop/kill this thread 
+1

可能的複製http://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread-in-python –

+0

只需從'run'方法返回? –

+0

@JoachimPileborg這將有效地阻止線程在代碼中處於活動狀態,但它不會阻止現有的線程。這一點很重要,因爲我想要即時生成線程。 – jab

回答

2

你需要信號中的主線程的工作線程完成,然後線程調用join

+0

我如何發出工作線程完成的主線程? – tilaprimera

+0

@tilaprimera最簡單的方法只是一個布爾標誌,該線程在返回之前將其設置爲最後一件事情。 –