我想在Python中創建一個腳本來學習線程和我似乎無法停止在線程循環。目前,我正在使用pyInstaller編譯腳本並結束Thread過程,我知道這不是最好的方法,任何人都可以向我解釋如何在命令上結束一個線程?我讀過很多其他問題,但我似乎無法理解如何以「正確」的方式阻止線程。下面是我使用截至目前,以測試它的代碼:如何在Python中的線程中停止for循環?
class Thread(Thread):
def __init__(self, command, call_back):
self._command = command
self._call_back = call_back
super(Thread, self).__init__()
def run(self):
self._command()
self._call_back()
def test():
i = 20
for n in range(0,i):
#This is to keep the output at a constant speed
sleep(.5)
print n
def thread_stop():
procs = str(os.getpid())
PROCNAME = 'spam.exe'
for proc in psutil.process_iter():
if proc.name == PROCNAME:
text = str(proc)[19:]
head, sep, tail = text.partition(',')
if str(head) != procs:
subprocess.call(['taskkill', '/PID', str(head), '/F'])
的功能是由Tkinter的做了一個圖形用戶界面,這是罰款,現在叫。
如果你不想讀這一切,給點意見:我如何停止一個線程「正確的方式」時,有一個在Python中的線程循環?謝謝!
編輯:對不起,我把我認爲是最重要的代碼。相反,這裏是整個代碼(這是我用來學習Python的文本消息器,但是在開始介紹它之前,上面是我的第一次嘗試線程)。 http://pastebin.com/qaPux1yR
這裏沒有什麼實際調用'測試()'。請分享完整的相關代碼。 – Amber 2012-08-13 06:03:49
@Amber很抱歉,編輯了這篇文章。 – 2012-08-13 06:08:36
你是否有殺死你的線程?你不能只發送他們的循環出口信號? – 2012-08-13 06:18:26