我在想如何檢查父線程是否仍然活着/卡住。基本上我有一個父線程發送命令給孩子。如果父母死亡或者遇到死鎖狀況,我不希望孩子繼續生活。以下是我迄今爲止實施的基本框架。檢查父線程是否正在運行
from Queue import Queue
from threading import Thread
class myClass:
def __init__(self):
self.currentCommand = Queue()
t = Thread(target=self._run)
t.start()
def close(self):
self._sendCommand("close")
def _run(self):
while True:
if self.currentCommand.empty():
pass
#do some task
else:
command = self.currentCommand.get()
if command == "close":
#clean up
self.currentCommand.task_done()
break
else:
#do command task
self.currentCommand.task_done()
def _sendCommand(self, command):
self.currentCommand.put(command)
self.currentCommand.join()
我的一個想法是定期從父母向孩子發送計算機時間。如果時間超過設定值,孩子將會死亡。有沒有更容易或更有效的方法?另外在python文檔中,線程類中有一個isAlive方法,但我不確定如何使用它。