我正試圖通過在另一個線程中運行的對象worker
上調用stopThread
來輕輕地終止正在運行的Python線程。無法調用在線程中運行的對象中的函數
但是這樣做是給我的錯誤:
AttributeError: 'Thread' object has no attribute 'stopThread'
我們怎樣才能解決這個問題?
import threading
import time
class Worker(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.stopRequest = threading.Event()
def doSomething(self):
while True:
if not self.stopRequest.isSet():
print 'Doing something'
time.sleep(5)
def stopThread(self):
self.stopRequest.set()
def startWorker():
worker = Worker()
worker.doSomething()
# Start thread
t = threading.Thread(target=startWorker)
t.start()
# Stop thread
t.stopThread()
有幫助的線程終止討論:http://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread-in-python – DyZ
你沒有創建你的'你可能認爲你是工作者的子類。請參閱[** _如何啓動和停止線程?_ **](http://stackoverflow.com/questions/15729498/how-to-start-and-stop-thread)示例。 – martineau