欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Python中定時任務線程無法自動退出的問題

 更新時間:2019年02月18日 09:48:41   作者:hhgood  
今天小編就為大家分享一篇解決Python中定時任務線程無法自動退出的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

python的線程有一個類叫Timer可以,用來創(chuàng)建定時任務,但是它的問題是只能運行一次,如果要重復執(zhí)行,則只能在任務中再調用一次timer,但這樣就存在新的問題了,就是在主進程退出后,不能正常退出子線程。

from threading import Timer
 
 
def scheduletaskwrap():
 pritn "in task"
 Timer(10, scheduletaskwrap).start()
 
Timer(10, scheduletaskwrap).start()

象上面這樣,就可以每10秒調用一次線程,但是當你退出整個程序后,子線程

scheduletaskwrap

還在繼續(xù)執(zhí)行,要通知它退出怎么辦?

python的線程模塊提供了很多辦法,什么event,wait,lock等,這些都比較麻煩不適合這種定時任務的簡單方法。

最簡單的就是設置一個全局變量,然后在線程中判斷它是否改變。

from threading import Timer
gflag=1
 
def scheduletaskwrap():
 global gflag
 pritn "in task"
 if gflag==1:
  Timer(10, scheduletaskwrap).start()
 
Timer(10, scheduletaskwrap).start()

想象是美好的,你實際運行就會發(fā)現,這樣行不通,因為主進程退出后,那個全局變量,在子線程中還是1,沒有改變,因為python不存在什么退出通知之類的機制。

那沒有其他辦法了嗎?經過思考,既然進程沒有退出通知,但是類可以啊,類一般都有析構函數,可以用它來實現全局變量的改變,于是添加了一個類,在析構函數中把全局變量改成0,這樣就可以了。

class timerexec():
  threadhandle=0
  def __init__(self,thandle): 
    threadhandle=thandle
  def __del__(self): 
    global gflag
    gflag=0
    print u"線程結束",gflag
    threadhandle.cancel
  refreshthread=Timer(10, scheduletaskwrap).start()
  a=timerexec(refreshthread)

主進程中調用timer的地方也要添加創(chuàng)建類的代碼。

這樣就可以了。

以上這篇解決Python中定時任務線程無法自動退出的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python基于SMTP協議發(fā)送郵件

    python基于SMTP協議發(fā)送郵件

    這篇文章主要為大家詳細介紹了python基于SMTP協議發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • OpenCV半小時掌握基本操作之腐蝕膨脹

    OpenCV半小時掌握基本操作之腐蝕膨脹

    這篇文章主要介紹了OpenCV基本操作之腐蝕膨脹,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • python實現兩張圖片的像素融合

    python實現兩張圖片的像素融合

    這篇文章主要為大家詳細介紹了python實現兩張圖片的像素融合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • python基礎教程之popen函數操作其它程序的輸入和輸出示例

    python基礎教程之popen函數操作其它程序的輸入和輸出示例

    popen函數允許一個程序將另一個程序作為新進程啟動,并可以傳遞數據給它或者通過它接收數據,下面使用示例學習一下他的使用方法
    2014-02-02
  • 告別網頁搜索!教你用python實現一款屬于自己的翻譯詞典軟件

    告別網頁搜索!教你用python實現一款屬于自己的翻譯詞典軟件

    教你用python做一款屬于自己的翻譯詞典軟件,從此告別網頁搜索,文中有非常詳細的代碼示例,小伙伴們快快行動吧,需要的朋友可以參考下
    2021-06-06
  • 關于jupyter lab安裝及導入tensorflow找不到模塊的問題

    關于jupyter lab安裝及導入tensorflow找不到模塊的問題

    這篇文章主要介紹了關于jupyter lab安裝及導入tensorflow找不到模塊的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • python list count統(tǒng)計個數的實現

    python list count統(tǒng)計個數的實現

    這篇文章主要介紹了python list count統(tǒng)計個數的實現方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python正則表達式介紹

    Python正則表達式介紹

    本文介紹了Python對于正則表達式的支持,包括正則表達式基礎以及Python正則表達式標準庫的完整介紹及使用示例。本文的內容不包括如何編寫高效的正則表達式、如何優(yōu)化正則表達式,這些主題請查看其他教程
    2012-08-08
  • 用Python識別人臉,人種等各種信息

    用Python識別人臉,人種等各種信息

    這篇文章主要介紹了用Python識別人臉,人種等各種信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python實現圖片轉換成素描和漫畫格式

    python實現圖片轉換成素描和漫畫格式

    這篇文章主要為大家詳細介紹了python實現圖片轉換成素描和漫畫格式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論