TerminatableThread
クラスを実装する 2 つの方法を見つけました。それぞれの長所短所や意見をお聞きしたいのですが、違いはありますか?
最初の解決策:クラスの__stop()
プライベート メソッドを使用する:Thread
class TerminatableThread(threading.Thread):
def __init__(self, *args, **argv):
threading.Thread.__init__(self, *args, **argv)
def terminate(self):
threading.Thread._Thread__stop(self) #@UndefinedVariable
@property
def should_run(self):
return threading.Thread.is_alive(self)
2番目の解決策:追加の使用Event
:
class TerminatableThread(threading.Thread):
def __init__(self, *args, **argv):
self.__terminated = threading.Event()
threading.Thread.__init__(self, *args, **argv)
def terminate(self):
self.__terminated.set()
@property
def should_run(self):
return not self.__terminated.is_set()
どう思いますか?ありがとう