婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python 實現多線程的三種方法總結

python 實現多線程的三種方法總結

熱門標簽:地圖標注的意義點 房產電銷外呼系統 地圖制圖標注位置改變是移位嗎 上海機器人外呼系統哪家好 南京銷售外呼系統軟件 地圖標注微信發送位置不顯示 浙江電銷卡外呼系統好用嗎 315電話機器人廣告 蓋州市地圖標注

1._thread.start_new_thread(了解)

import threading
import time
import _thread
def job():
    print("這是一個需要執行的任務。。。。。")
    print("當前線程的個數:", threading.active_count() )
    print("當前線程的信息:", threading.current_thread())
    time.sleep(100)
if __name__ == '__main__':
    # 創建多線程時, 需要制定該線程執行的任務
    _thread.start_new_thread(job, ())
    _thread.start_new_thread(job, ())
    job()

2.threading.Thread

import threading
import time
def job():
    print("這是一個需要執行的任務。。。。。")
    print("當前線程的個數:", threading.active_count() )
    time.sleep(1)
    print("當前線程的信息:", threading.current_thread())
if __name__ == '__main__':
    # 創建多線程時, 需要制定該線程執行的任務.name線程名字 target目標函數名
    t1 = threading.Thread(target=job,name='job1')
    t2 = threading.Thread(target=job,name='job2')
    t1.start()
    t2.start()
    print(threading.active_count())
 print("程序執行結束.....")

輸出:

這是一個需要執行的任務。。。。。

當前線程的個數: 3

這是一個需要執行的任務。。。。。

3

程序執行結束.....

當前線程的個數: 3

當前線程的信息: Thread(job1, started 140416648140544)>

當前線程的信息: Thread(job2, started 140416639747840)>

出現的問題: 主線程執行結束, 但是子線程還在運行。

join()方法可以等待所有的子線程執行結束之后, 再執行主線程。

import threading
import time
def job():
    print("這是一個需要執行的任務。。。。。")
    print("當前線程的個數:", threading.active_count() )
    print("當前線程的信息:", threading.current_thread())
 time.sleep(1)
if __name__ == '__main__':
    # 創建多線程時, 需要制定該線程執行的任務.name線程名字 target目標函數名
    t1 = threading.Thread(target=job,name='job1')
    t2 = threading.Thread(target=job,name='job2')
    t1.start()
    t2.start()
    print(threading.active_count())
    # 出現的問題: 主線程執行結束, 但是子線程還在運行。
    # 等待所有的子線程執行結束之后, 再執行主線程
    t1.join()
    t2.join()
    print("程序執行結束.....")

之前寫過一個簡單爬蟲的實驗,現在希望獲取十個ip的城市和國家

-不使用多線程

import time
from urllib.request import urlopen
# 記錄時間的裝飾器
def timeit(f):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        res = f(*args, **kwargs)
        end_time = time.time()
        print("%s函數運行時間:%.2f" % (f.__name__, end_time - start_time))
        return res
    return wrapper
def get_addr(ip):
    url = "http://ip-api.com/json/%s" % (ip)
    urlObj = urlopen(url)
    # 服務端返回的頁面信息, 此處為字符串類型
    pageContent = urlObj.read().decode('utf-8')
    # 2. 處理Json數據
    import json
    # 解碼: 將json數據格式解碼為python可以識別的對象;
    dict_data = json.loads(pageContent)
    print("""
                        %s
    所在城市: %s
    所在國家: %s
    
    """ % (ip, dict_data['city'], dict_data['country']))
@timeit
def main():
    ips = ['12.13.14.%s' % (i + 1) for i in range(10)]
    for ip in ips:
        get_addr(ip)
if __name__ == '__main__':
    main()

時間需要138.91秒。

-使用多線程

import threading
import time
from urllib.request import urlopen
def timeit(f):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        res = f(*args, **kwargs)
        end_time = time.time()
        print("%s函數運行時間:%.2f" % (f.__name__, end_time - start_time))
        return res
    return wrapper
def get_addr(ip):
    url = "http://ip-api.com/json/%s" % (ip)
    urlObj = urlopen(url)
    # 服務端返回的頁面信息, 此處為字符串類型
    pageContent = urlObj.read().decode('utf-8')
    # 2. 處理Json數據
    import json
    # 解碼: 將json數據格式解碼為python可以識別的對象;
    dict_data = json.loads(pageContent)
    print("""
                        %s
    所在城市: %s
    所在國家: %s
    
    """ % (ip, dict_data['city'], dict_data['country']))
@timeit
def main():
    ips = ['12.13.14.%s' % (i + 1) for i in range(10)]
    threads = []
    for ip in ips:
        # 實例化10個對象,target=目標函數名,args=目標函數參數(元組格式)
        t = threading.Thread(target=get_addr, args=(ip, ))
        threads.append(t)
        t.start()
    
    # 等待所有子線程結束再運行主線程
    [thread.join() for thread in threads]
if __name__ == '__main__':
    main()

3.重寫run方法

重寫run方法, 實現多線程, 因為start方法執行時, 調用的是run方法;run方法里面編寫的內容就是你要執行的任務;

import threading
import time
# 重寫一個類,繼承于threading.Thread
class MyThread(threading.Thread):
    def __init__(self, jobName):
        super(MyThread, self).__init__()
        self.jobName = jobName
    # 重寫run方法, 實現多線程, 因為start方法執行時, 調用的是run方法;
    # run方法里面編寫的內容就是你要執行的任務;
    def run(self):
        print("這是一個需要執行的任務%s。。。。。" %(self.jobName))
        print("當前線程的個數:", threading.active_count() )
        time.sleep(1)
        print("當前線程的信息:", threading.current_thread())
if __name__ == '__main__':
    t1 = MyThread("name1")
    t2 = MyThread("name2")
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print("程序執行結束.....")

重寫run方法實現剛才爬蟲多線程案例

import threading
import time
from urllib.request import urlopen
def timeit(f):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        res = f(*args, **kwargs)
        end_time = time.time()
        print("%s函數運行時間:%.2f" % (f.__name__, end_time - start_time))
        return res
    return wrapper
class MyThread(threading.Thread):
    def __init__(self, ip):
        super(MyThread, self).__init__()
        self.ip = ip
    def run(self):
        url = "http://ip-api.com/json/%s" % (self.ip)
        urlObj = urlopen(url)
        # 服務端返回的頁面信息, 此處為字符串類型
        pageContent = urlObj.read().decode('utf-8')
        # 2. 處理Json數據
        import json
        # 解碼: 將json數據格式解碼為python可以識別的對象;
        dict_data = json.loads(pageContent)
        print("""
                            %s
        所在城市: %s
        所在國家: %s
        
        """ % (self.ip, dict_data['city'], dict_data['country']))
@timeit
def main():
    ips = ['12.13.14.%s' % (i + 1) for i in range(10)]
    threads = []
    for ip in ips:
        # 實例化自己重寫的類
        t = MyThread(ip)
        threads.append(t)
        t.start()
    [thread.join() for thread in threads]
if __name__ == '__main__':
    main()

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 深入理解python多線程編程
  • python基于concurrent模塊實現多線程
  • Python 多線程之threading 模塊的使用
  • python 如何用map()函數創建多線程任務
  • python多線程超詳細詳解
  • python 多進程和多線程使用詳解
  • Python多進程與多線程的使用場景詳解
  • Python之多進程與多線程的使用
  • python 多線程爬取壁紙網站的示例

標簽:克拉瑪依 臨汾 赤峰 貴州 金華 陽泉 日照 雙鴨山

巨人網絡通訊聲明:本文標題《python 實現多線程的三種方法總結》,本文關鍵詞  python,實現,多,線程,的,三種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python 實現多線程的三種方法總結》相關的同類信息!
  • 本頁收集關于python 實現多線程的三種方法總結的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品主播直播| 亚洲男人天堂av| 欧美日本精品一区二区三区| 亚洲综合色噜噜狠狠| 欧美一区二区在线观看| 在线不卡中文字幕| 欧美色欧美亚洲另类二区| 欧美哺乳videos| 亚洲精品国产视频| 国产精品久久久久久亚洲毛片| 久久品道一品道久久精品| 热久久久久久久| 色成年激情久久综合| 久久综合给合久久狠狠狠97色69| 精品免费99久久| 一区二区免费视频| 91论坛在线播放| 中文字幕日本不卡| 国产成人午夜精品影院观看视频| 香蕉久久夜色精品国产使用方法| 一区二区三区四区在线| 国产iv一区二区三区| 精品美女在线观看| 蜜芽一区二区三区| 欧美三级一区二区| 亚洲人午夜精品天堂一二香蕉| 亚洲一卡二卡三卡四卡| 亚洲精品一区二区三区精华液| 捆绑紧缚一区二区三区视频| 99vv1com这只有精品| 美女视频一区在线观看| 久久伊人中文字幕| 久久精品水蜜桃av综合天堂| 日本在线播放一区二区三区| 亚洲三级视频在线观看| 夜夜嗨av一区二区三区网页 | 色综合天天综合给合国产| 4438x成人网最大色成网站| 日本伊人色综合网| 美女国产一区二区三区| 97久久精品人人做人人爽| 色综合久久综合| 国产精品久99| 国产午夜精品美女毛片视频| 精品欧美一区二区久久| 亚洲电影一级片| 国产成人在线影院| 久久精品人人做人人综合 | 亚洲国产中文字幕在线视频综合| 国产精品12区| 中文字幕在线一区| av在线免费不卡| 亚洲一区二区视频在线观看| 欧美欧美午夜aⅴ在线观看| 精品国产乱码久久久久久浪潮| 日韩一区精品字幕| 欧美挠脚心视频网站| 国产成人在线观看| 亚洲一区二区在线免费观看视频| 精品国产一区二区三区不卡 | 欧美一区二区视频观看视频| 久久精品国产免费| 国产精品天干天干在线综合| 91美女在线看| 国产精品影音先锋| 亚洲国产精品人人做人人爽| 久久久蜜桃精品| 欧美久久婷婷综合色| 国产91精品精华液一区二区三区| 中文字幕一区二区三区精华液| 岛国一区二区三区| 久久影院视频免费| 色综合一个色综合亚洲| 亚洲国产一区二区视频| 欧美一区二区黄| 亚洲免费观看高清完整版在线观看熊| 91精品国产综合久久久蜜臀图片| 亚洲一区二区影院| 日韩一级二级三级精品视频| 亚洲成人自拍网| www国产亚洲精品久久麻豆| 不卡一区二区在线| 久久99精品久久久久久国产越南 | 精品国产乱码久久久久久夜甘婷婷| 日韩国产在线观看一区| 日韩午夜在线观看视频| 久久成人18免费观看| 日韩美女视频19| 精品久久久久久亚洲综合网| 91在线免费看| 精品在线免费视频| 亚洲亚洲人成综合网络| 亚洲国产成人午夜在线一区| 宅男噜噜噜66一区二区66| 成人黄色电影在线| 亚洲福利国产精品| 一区二区三区不卡视频| 51久久夜色精品国产麻豆| av动漫一区二区| 精品一区二区三区在线播放 | 亚洲va韩国va欧美va精品| 国产精品乱码一区二三区小蝌蚪| 91黄色免费看| 丰满亚洲少妇av| 国产一区二区三区不卡在线观看 | 狠狠色综合日日| 精品人在线二区三区| 亚洲一区二区三区国产| 亚洲天堂精品视频| 一区二区三区.www| 天天色图综合网| 亚洲电影第三页| 免费在线观看一区二区三区| 天堂影院一区二区| 久久99国产精品久久99| 精品午夜久久福利影院| 欧美揉bbbbb揉bbbbb| 91精品一区二区三区久久久久久 | 日本不卡视频在线观看| 日韩精品亚洲专区| 成人久久18免费网站麻豆 | 国产欧美一区二区在线| 久久精品夜色噜噜亚洲aⅴ| 国产三级欧美三级日产三级99 | 亚洲一区二区三区四区五区中文| 婷婷中文字幕综合| 亚洲成人免费视| 成人动漫一区二区三区| 色综合久久精品| 97久久精品人人做人人爽50路| 欧美中文一区二区三区| 精品久久久三级丝袜| 亚洲成人免费影院| 日本韩国欧美在线| 国产亚洲成年网址在线观看| 亚洲高清久久久| 91成人看片片| 综合av第一页| 波多野结衣中文字幕一区二区三区| 91啪在线观看| 国产精品久久久久毛片软件| 成人手机电影网| 51午夜精品国产| 色噜噜狠狠成人中文综合| 日韩欧美国产一区二区三区 | 亚洲成av人片在线观看| 国产在线精品不卡| 久久久久久免费网| 成人午夜电影小说| 亚洲综合一二三区| 日韩一区二区在线观看视频 | 欧美精品一区二区三区视频| 亚洲欧美影音先锋| 色婷婷av一区二区三区之一色屋| 综合久久一区二区三区| 色噜噜狠狠一区二区三区果冻| 亚洲男人的天堂在线aⅴ视频| 成人黄色av电影| 亚洲午夜av在线| 欧美白人最猛性xxxxx69交| 国产精品乡下勾搭老头1| 国产精品你懂的在线欣赏| 国产色综合一区| 日本乱码高清不卡字幕| 亚洲国产sm捆绑调教视频 | 黄色日韩网站视频| 亚洲日本va午夜在线影院| 555www色欧美视频| 国内精品久久久久影院薰衣草| 亚洲综合在线观看视频| 欧美电影免费观看高清完整版| 日韩中文字幕一区二区三区| 欧美激情在线一区二区| 日韩片之四级片| 91免费国产视频网站| 日韩**一区毛片| 中文字幕在线观看一区| 国产欧美日韩久久| 中文字幕高清不卡| 亚洲国产视频a| 中文字幕高清一区| 一区二区三区中文在线| 国产精品成人在线观看| 日本一区二区高清| 亚洲精品综合在线| 日韩 欧美一区二区三区| 丰满白嫩尤物一区二区| 色哟哟一区二区在线观看| 色欧美日韩亚洲| 久久免费国产精品| 精品国产乱码久久久久久久久| 精品播放一区二区| 亚洲电影欧美电影有声小说| 九九视频精品免费| 欧美性xxxxx极品少妇| 久久影院午夜论| 亚洲一区二区三区美女| 99精品桃花视频在线观看| 日韩一区二区三区观看| 亚洲成人av中文|