2

Python Thread の run() メソッド内で、フラグをチェックするとします。そのフラグが True の場合、スレッドは終了する必要があり、その仕事を完了し、終了する必要があると仮定します。

その時点でスレッドを終了するにはどうすればよいですか? しようとしているThread.exit()

class  workingThread(Thread):

    def __init__(self, flag):
        Thread.__init__(self)
        self.myName = Thread.getName(self)
        self.FLAG= flag
        self.start()    # start the thread

    def run(self) : # Where I check the flag and run the actual code

        # STOP
        if (self.FLAG == True):

                # none of following works all throw exceptions    
                self.exit()
                self._Thread__stop()
                self._Thread_delete()
                self.quit()

        # RUN
        elif (self.FLAG == False) :
               print str(self.myName)+ " is running."
4

2 に答える 2

3

korylprinceは正しいです。必要なのはreturnステートメント、または場合によっては次のパスです。

def run(self):
    if self.FLAG == True:
        pass
    else:
        print str(self.myName) + " is running."

コードにはループ構造がないため、どちらの場合もスレッドは終了します。基本的に、関数が戻るとスレッドは終了します。複数の操作を実行する場合は、そこに何らかのループを追加します。

于 2012-10-01T18:47:01.330 に答える
2

私は通常、次のパターンを使用します。

def run(self):
    while self.active:
        print str(self.myName) + " is running."

の場合、自動的に終了しself.activeますFalse

注意:を使用する場合while True:は、CPUコアを占有しないようにコードを構造化してください。これは、簡単に実行できるためです。

于 2012-10-01T18:54:52.480 に答える