第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python可停止調(diào)度在單獨的線程中

python可停止調(diào)度在單獨的線程中

九州編程 2021-11-16 16:39:51
我有一個來自sched模塊的 python 計劃,我想在一個單獨的線程中執(zhí)行,同時能夠隨時停止它。我看了看,threading module但不知道哪種方法是實現(xiàn)這一點的最佳方法。時間表示例:>>> s.run()onetwothreeend線程中的調(diào)度示例:>>> t = threading.Thread(target = s.run)>>> t.start()onetwo>>> print("ok")okthreeend>>>想要的結(jié)果:>>> u = stoppable_schedule(s.run)>>> u.start()>>>onetwo>>> u.stop()"schedule stopped"
查看完整描述

1 回答

?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

您所描述的是可以異步停止的線程。


如上所述這里,有兩種主要的方法。其中之一是讓線程代碼檢查u.stop()它所做的每個操作的某個事件(在您的示例中由觸發(fā))。


另一種解決方案是強制在某個線程中引發(fā)錯誤。這種方法實現(xiàn)起來更簡單,但可能會導致意外行為,并且您的線程代碼越復雜,它就越危險。


import ctypes



ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, 0)

tid要終止的線程在哪里。您可以通過運行(在線程中)來獲取線程 ID:


print self._thread_id

Tomer Filiba的thread2博客文章中有關于此的更多信息。


查看完整回答
反對 回復 2021-11-16
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號