亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python 多線程重啟方法

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

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

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

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

自動(dòng)重啟線程的思路如下:

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

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

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

下面舉個(gè)例子:

#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)前線程名,并跟初始線程組比較,某一線程停止后自動(dòng)運(yùn)行
def checkThread(sleeptimes=180,initThreadsName=[]):
  for i in range(0,10080):#循環(huán)運(yùn)行
    nowThreadsName=[]#用來(lái)保存當(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)為線程仍在運(yùn)行
      else:
        print '==='+ip,'stopped,now restart'
        t=threading.Thread(target=printIP,args=(ip,))#重啟線程
        t.setName(ip)#重設(shè)name
        t.start()
    time.sleep(sleeptimes)#隔一段時(shí)間重新運(yùn)行,檢測(cè)有沒(méi)有線程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()#獲取初始化的線程對(duì)象
  for i in init:
    initThreadsName.append(i.getName())#保存初始化線程組名字

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

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

相關(guān)文章

  • Python爬蟲實(shí)戰(zhàn)之爬取某寶男裝信息

    Python爬蟲實(shí)戰(zhàn)之爬取某寶男裝信息

    網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則自動(dòng)瀏覽、檢索網(wǎng)頁(yè)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲能夠自動(dòng)請(qǐng)求網(wǎng)頁(yè),并將所需要的數(shù)據(jù)抓取下來(lái)。本文將為大家介紹如何利用爬蟲獲取某寶男裝信息,感興趣的小伙伴可以了解一下
    2021-12-12
  • 基于Python實(shí)現(xiàn)文件大小輸出

    基于Python實(shí)現(xiàn)文件大小輸出

    在數(shù)據(jù)庫(kù)中存儲(chǔ)時(shí),使用 Bytes 更精確,可擴(kuò)展性和靈活性都很高。下面通過(guò)本文給大家介紹基于Python實(shí)現(xiàn)文件大小輸出,對(duì)python文件輸出相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 詳解Python的Django框架中Manager方法的使用

    詳解Python的Django框架中Manager方法的使用

    這篇文章主要介紹了Python的Django框架中Manager方法的使用,包括修改初始Manager QuerySets和增加額外的Manager方法等操作,需要的朋友可以參考下
    2015-07-07
  • 淺談python中requests模塊導(dǎo)入的問(wèn)題

    淺談python中requests模塊導(dǎo)入的問(wèn)題

    今天小編就為大家分享一篇淺談python中requests模塊導(dǎo)入的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python異常觸發(fā)及自定義異常類解析

    python異常觸發(fā)及自定義異常類解析

    這篇文章主要介紹了python異常觸發(fā)及自定義異常類解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python palywright庫(kù)基本使用

    python palywright庫(kù)基本使用

    這篇文章主要介紹了python palywright庫(kù)的基本使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python密碼學(xué)仿射密碼及攻擊單字母密碼教程

    Python密碼學(xué)仿射密碼及攻擊單字母密碼教程

    這篇文章主要為大家介紹了Python密碼學(xué)仿射及攻擊單字母密碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Django重定向redirect的具有使用

    Django重定向redirect的具有使用

    在Django中,redirect是一個(gè)用于進(jìn)行重定向的函數(shù),本文主要介紹了Django重定向redirect的具有使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼

    Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼

    這篇文章主要介紹了Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python計(jì)算文本文件行數(shù)的方法

    python計(jì)算文本文件行數(shù)的方法

    這篇文章主要介紹了python計(jì)算文本文件行數(shù)的方法,涉及Python針對(duì)文本文件的讀取與行數(shù)統(tǒng)計(jì)相關(guān)技巧,需要的朋友可以參考下
    2015-07-07

最新評(píng)論