最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 多線程重啟方法

 更新時間:2019年02月18日 10:00:15   作者:DylanOOO  
今天小編就為大家分享一篇python 多線程重啟方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

python 多線程程序運行中,會出現(xiàn)由于異常而導(dǎo)致某線程停止的情況,為了保證程序的穩(wěn)定運行,需要自動重啟down掉的線程.

python Threading類有一個setName()的方法,可以為線程設(shè)置名字。

threading.enumerate()可以獲取當(dāng)前的線程對象。

自動重啟線程的思路如下:

1.使用setName()每個線程設(shè)置名字;

2.在初始化運行時使用threading.enumerate()獲取當(dāng)前所有線程對象,保存為初始線程組;

3.隔一段時間使用threading.enumerate()獲取當(dāng)前所有線程對象,與初始線程組對比,如果某個name缺失,則重新start。

下面舉個例子:

#coding:utf-8
import threading

list_ip=['1.1.1.1','2.2.2.2','3.3.3.3'] #一組ip列表

def printIP(ip):
  print ip

#每180s獲取當(dāng)前線程名,并跟初始線程組比較,某一線程停止后自動運行
def checkThread(sleeptimes=180,initThreadsName=[]):
  for i in range(0,10080):#循環(huán)運行
    nowThreadsName=[]#用來保存當(dāng)前線程名稱
    now=threading.enumerate()#獲取當(dāng)前線程名
    for i in now:
      nowThreadsName.append(i.getName())#保存當(dāng)前線程名稱

    for ip in initThreadsName:
      if ip in nowThreadsName:
        pass #當(dāng)前某線程名包含在初始化線程組中,可以認(rèn)為線程仍在運行
      else:
        print '==='+ip,'stopped,now restart'
        t=threading.Thread(target=printIP,args=(ip,))#重啟線程
        t.setName(ip)#重設(shè)name
        t.start()
    time.sleep(sleeptimes)#隔一段時間重新運行,檢測有沒有線程down


if __name__ == '__main__':
  threads=[]
  initThreadsName=[]#保存初始化線程組名字
  for ip in list_ip:
    t=threading.Thread(target=printIP,args=(ip,))
    t.setName(ip)
    threads.append(t)

  for t in threads:
    t.start()

  init=threading.enumerate()#獲取初始化的線程對象
  for i in init:
    initThreadsName.append(i.getName())#保存初始化線程組名字

  check=threading.Thread(target=checkThread,args=(180,initThreadsName))#用來檢測是否有線程down并重啟down線程
  check.setName('Thread:check')
  check.start()

以上這篇python 多線程重啟方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django之模板層的實現(xiàn)代碼

    Django之模板層的實現(xiàn)代碼

    這篇文章主要介紹了Django之模板層的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python + OpenCV 實現(xiàn)LBP特征提取的示例代碼

    Python + OpenCV 實現(xiàn)LBP特征提取的示例代碼

    這篇文章主要介紹了Python + OpenCV 實現(xiàn)LBP特征提取的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python如何寫個俄羅斯方塊

    python如何寫個俄羅斯方塊

    這篇文章主要介紹了python寫個俄羅斯方塊,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • 基于python實現(xiàn)一個簡單的瀏覽器引擎

    基于python實現(xiàn)一個簡單的瀏覽器引擎

    瀏覽器引擎是用來處理、渲染和顯示網(wǎng)頁內(nèi)容的核心組件,其主要任務(wù)是將用戶輸入的URL所代表的網(wǎng)頁資源加載并呈現(xiàn)出來,通常包括HTML、CSS、JavaScript以及各種多媒體內(nèi)容,本文給大家介紹了如何基于python實現(xiàn)一個簡單的瀏覽器引擎,需要的朋友可以參考下
    2024-10-10
  • python實現(xiàn)單機五子棋

    python實現(xiàn)單機五子棋

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)單機五子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • ZABBIX3.2使用python腳本實現(xiàn)監(jiān)控報表的方法

    ZABBIX3.2使用python腳本實現(xiàn)監(jiān)控報表的方法

    今天小編就為大家分享一篇ZABBIX3.2使用python腳本實現(xiàn)監(jiān)控報表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python用什么編輯器進行項目開發(fā)

    python用什么編輯器進行項目開發(fā)

    在本篇文章里小編給大家整理的是一篇關(guān)于python開發(fā)用的編輯器詳細(xì)介紹,有需要的朋友們可以參考下哎。
    2020-06-06
  • Python2.x利用commands模塊執(zhí)行Linux shell命令

    Python2.x利用commands模塊執(zhí)行Linux shell命令

    這篇文章主要介紹了Python2.x利用commands模塊執(zhí)行Linux shell命令 的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 詳細(xì)解讀Python中的json操作

    詳細(xì)解讀Python中的json操作

    json操作是最為基本的、最為常用的,Python自帶的json模塊就可以滿足大部分應(yīng)用場景,而且使用起來極為簡單,下面這篇文章主要給大家介紹了關(guān)于Python中json操作的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 對Python3 goto 語句的使用方法詳解

    對Python3 goto 語句的使用方法詳解

    今天小編就為大家分享一篇對Python3 goto 語句的使用方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02

最新評論

元阳县| 五家渠市| 潜山县| 体育| 衢州市| 通河县| 黄大仙区| 丰原市| 江西省| 逊克县| 乐都县| 靖州| 射洪县| 健康| 阳信县| 屏东县| 突泉县| 井陉县| 浮梁县| 徐州市| 江北区| 桓台县| 沁阳市| 镇雄县| 景泰县| 西贡区| 水城县| 邳州市| 东乌| 沁阳市| 宽甸| 洱源县| 彰武县| 定陶县| 九龙城区| 雷州市| 贡觉县| 舞阳县| 七台河市| 安阳市| 柳林县|