長いメソッドを持つクラスを持つ。
そのメソッドのスレッドを作成します。
このスレッドを強制終了するにはどうすればよいですか? 主な問題は、ループが含まれていないため、スレッドrun()メソッドでthreading.Event
を
チェックできないことです。
ここと同様のコード:
import time
import threading
class LongAction:
def time_consuming_action(self):
tmax = 600
for i in range(tmax):
print i
time.sleep(1)
time.sleep(tmax)
self.tmax = tmax
return "Slept well"
class LongActionThread(threading.Thread):
def __init__(self, la_object):
self.la = la_object
threading.Thread.__init__(self)
def run(self):
self.la.time_consuming_action()
la = LongAction()
la_thread = LongActionThread(la)
la_thread.start()
# After 5 sec i've changed my mind and trying to kill LongActionThread
time.sleep(5)
print "Trying to kill LongActionThread"
la_thread.kill()