python殺死線程
1. python中如何中止一個線程
簡單來說,它kill的原理是設置一個flag位,然後線程在執行下一句python語句檢測到這個位被設置了之後,就會自行退出,以達到kill的目的。 另外還有一種更容易理解的flag置位的實現方式:classKillableThread(threading.Thread):def__init__(self):threading.Thread. __init__(self)self.stop = Falsedefrun(self):whilenotself.stop:somefunction() 這種方式相比第一種而言,又有一點不足:kill生效的時限,最大等於somefunction執行一遍所花的時間。 而第一種方式,在下一句python語句執行時就會生效。 不過可以料想,第一種實現方式,整體的執行效率會慢一點。
2. Python中怎麼在終止一個線程的同時終止另外一個線程
設置一個全局變數,初值為False
設置鍵盤監聽事件,當監測到特定按鍵時,將全局變數的值修改為True
在每個子線程中,循環檢測全局變數的值,當檢測到值為True時退出線程函數。
3. python如何結束線程
在線程里添加一個結束標識,想要結束線程時吧標識置為True,可以結束線程 Hider和它的父類threading.Thread都沒有__stop參數,當然會報錯了
4. python 主線程被殺死是什麼意思
使用getId來獲得ID,然後通過WindowsSDKAPI調用來強行Trim。
用子進程是一種不錯的方案,因為python是可以kill掉某個進程的。不過相對來說,進程間數據共享比線程要復雜多了。
現在還有一種方案,但是我沒有研究的,是使用twisted的多線程模型。
5. Python 如何強制關閉線程
Python用sleep停止一個線程的運行,而不影響主線程的運行,案例代碼如下:
from threading import *import time class MyThread(Thread): def run (self): self.ifdo = True; while self.ifdo: print 'I am running...' time.sleep(2) def stop (self): print 'I am stopping it...' self.ifdo = False; tr = MyThread()tr.setDaemon(True)tr.start()print 'I will stop it...'time.sleep(5)tr.stop()tr.join()
6. python內部線程假死,有什麼辦法在進程內kill掉這個假死的線程
如果是爬蟲的話,這個一般都是由於網路原因造成的卡住,可以做兩層控制:
在HTTP請求上設置好超時時間,最好設定sockect的超時,這樣更底層一些。
在上層做一個檢測機制,定時輪詢線程是否正常,如果遇到不響應的直接kill掉。
7. 如何終止Python死循環線程
importtime
importthread
LOCK=True
deftimer(no,interval):
whileLOCK:
print'y'
deftest():
thread.start_new_thread(timer,(1,1))
time.sleep(5)
globalLOCK
LOCK=False
time.sleep(5)
if__name__=='__main__':
test()
可以使用全局變數的,因為線程是共用上下文變數的。
如果解決了您的問題請採納!
如果未解決請繼續追問