在Pyth??on中,何關(guān)線(xiàn)程一旦啟??動(dòng),閉線(xiàn)就無(wú)法被外部強制關(guān)閉,何ヽ(′▽?zhuān)?ノ關(guān)我們可以通過(guò)設置一個(gè)標志位來(lái)通知線(xiàn)程退出,閉線(xiàn)以下是何關(guān)一個(gè)簡(jiǎn)單的示例:
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)1、閉線(xiàn)我們需要導入threadin┐(′д`)┌g模塊,何關(guān)并創(chuàng )建一個(gè)繼承自threading.Thread的閉線(xiàn)類(lèi),在這個(gè)類(lèi)中,何關(guān)我們將定義一個(gè)名為stop_thread的閉線(xiàn)方法,用于設置標志位。何關(guān)
import threadi(′ω`)ngclass MyThread(threading.Thread): def __init__(self): super(MyT??hread,閉線(xiàn) self).__init__() self.stop_flag = False def run(self): while no┐(′?`)┌t self.stop_flag: # 在這里執行你的任務(wù) pass def st??o(???)p_thread(self): self.stop_flag = True
2、我們可以創(chuàng )建一個(gè)MyThread實(shí)例,何關(guān)并調用其start方法來(lái)啟動(dòng)線(xiàn)程,閉線(xiàn)當我們需要??停止線(xiàn)程時(shí),何關(guān)只需調用stop_thread方法即可。
my_thread = MyThread()my_( ?▽?)thread.start()當需要停止線(xiàn)程時(shí)my_thread.stop_thread()my_thread.join() # 等待線(xiàn)程結束這樣,我們就可以通過(guò)設置標志位來(lái)控制線(xiàn)程的運行和停止,需要注意的是,這種方法并不能立即停止線(xiàn)程,而是讓線(xiàn)程在下一次循環(huán)時(shí)檢查標??志位并退出,如果你的任務(wù)??中有長(cháng)時(shí)間阻塞的操作,可能需要在run方法中添加適當的超時(shí)處理。