欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 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 實現多線程的三種方法總結的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲国产欧美日韩另类综合| 国产老熟女伦老熟妇露脸| 91麻豆精品国产91久久综合| 日韩免费电影一区| 免费在线欧美视频| 第四色在线视频| 欧美一区二区视频观看视频| 性欧美大战久久久久久久久| 国产亚洲精品成人a| 欧美人妇做爰xxxⅹ性高电影 | 精品国产视频在线观看| 国产午夜亚洲精品午夜鲁丝片| 另类中文字幕网| 蜜乳av中文字幕| 国产亚洲精品福利| 国产 日韩 欧美大片| 国产va在线播放| 亚洲精品国产精华液| 91美女片黄在线观看91美女| 欧美午夜精品理论片a级按摩| 一区二区不卡在线视频 午夜欧美不卡在| 91丝袜美女网| 欧美日韩不卡视频| 美女在线观看视频一区二区| 欧美黄色激情视频| 中文字幕免费不卡| aaa国产一区| 欧美理论在线播放| 美女视频一区二区| 国产精品免费在线视频| 亚洲视频中文字幕| 久草免费资源站| 日韩免费视频线观看| 国产一区二区不卡在线 | 天天av天天翘天天综合网| 四虎永久免费影院| 国产女人aaa级久久久级| eeuss国产一区二区三区| 欧美吞精做爰啪啪高潮| 青娱乐精品视频| 永久免费毛片在线观看| 中文字幕亚洲视频| 欧美激情一区二区三区四区| 99视频精品免费视频| 9191国产精品| 国产麻豆成人精品| 欧美怡红院视频| 欧美a一区二区| 国产一区二区三区在线视频观看| 亚洲精选在线视频| 免费a级黄色片| 国产精品久久三区| 怡红院一区二区| 久久久国产精华| 人妻av一区二区三区| 久久中文字幕电影| 日本黄色一级网站| 久久午夜色播影院免费高清| 99久久免费视频.com| 日韩精品资源二区在线| 成人性视频免费网站| 91精品国产aⅴ一区二区| 国产精品正在播放| 69成人精品免费视频| 国产成人免费在线观看| 欧美日韩一区国产| 国产麻豆9l精品三级站| 在线电影国产精品| 成人免费电影视频| 精品理论电影在线| 日批视频在线看| 国产区在线观看成人精品 | 欧美另类一区二区三区| 国产精品1024久久| 欧美一区二区久久| 91影院在线免费观看| 国产日韩欧美综合一区| 在线观看免费视频黄| 中文字幕在线不卡视频| 亚洲永久精品ww.7491进入| 亚洲黄色免费网站| 91禁男男在线观看| 日本aⅴ亚洲精品中文乱码| 一本久道久久综合中文字幕| 精久久久久久久久久久| 欧美日韩激情一区| 99久久夜色精品国产网站| 久久综合久久综合久久综合| 在线播放av网址| 亚洲人吸女人奶水| 国产三级黄色片| 男人操女人的视频在线观看欧美| 欧美亚洲综合另类| 高清不卡一区二区在线| www日韩大片| 人妻在线日韩免费视频| 一区二区国产盗摄色噜噜| 亚洲色婷婷一区二区三区| 精品无人码麻豆乱码1区2区 | 免费看黄色三级| 日本视频一区二区| 欧美日韩免费观看一区三区| 成人va在线观看| 中文字幕精品—区二区四季| 性欧美一区二区| 人禽交欧美网站| 欧美一区二区三区系列电影| 在线成人精品视频| 亚洲蜜桃精久久久久久久| 免费高清在线观看电视| 国产精品影视在线| 久久日韩精品一区二区五区| 波多野结衣a v在线| 奇米影视7777精品一区二区| 欧美一区午夜视频在线观看 | 7777精品伊人久久久大香线蕉完整版 | 国产精品免费视频观看| 精品一区二区三孕妇视频| 久久99精品久久只有精品| 精品入口麻豆88视频| 亚洲欧美色图视频| 日本午夜精品视频在线观看| 91精品国产乱| 人体私拍套图hdxxxx| 日日摸夜夜添夜夜添亚洲女人| 欧美日韩高清在线| 国产免费无码一区二区| 夜夜精品浪潮av一区二区三区| 在线日韩国产精品| 小日子的在线观看免费第8集| 亚洲激情图片qvod| 精品视频在线免费| 91九色蝌蚪porny| 三级欧美韩日大片在线看| 欧美一级理论性理论a| 精品人妻一区二区三区视频| 毛片av一区二区| 久久久影视传媒| 欧美xxxooo| av资源站一区| 亚洲综合一区二区三区| 欧美福利电影网| 国产熟妇搡bbbb搡bbbb| 韩国欧美一区二区| 国产精品亲子伦对白| 日韩成人毛片视频| 91影视在线播放| 亚洲电影一区二区三区| 日韩一级二级三级精品视频| 国产人妻大战黑人20p| 国产成人午夜精品影院观看视频| 成人欧美一区二区三区小说| 欧美午夜一区二区三区| 最新在线黄色网址| 国产自产2019最新不卡| 国产精品剧情在线亚洲| 欧美性色黄大片手机版| 三级黄色片网站| 国产毛片精品一区| 18涩涩午夜精品.www| 欧美日本国产视频| 国产真人做爰视频免费| 成人午夜大片免费观看| 亚洲大片免费看| 久久久亚洲精华液精华液精华液| 日韩欧美国产成人精品免费| 成人啪啪18免费游戏链接| 老司机精品视频在线| 国产精品激情偷乱一区二区∴| 欧美日韩精品一区二区三区四区| 91网站免费入口| 成人aa视频在线观看| 天堂在线一区二区| 欧美国产成人精品| 欧美日韩精品一区二区三区四区| 欧美偷拍一区二区三区| jlzzjlzz国产精品久久| 日韩精品成人一区二区在线| 欧美国产丝袜视频| 欧美剧情片在线观看| www中文在线| 亚洲视频在线播放免费| 国产成人亚洲综合色影视| 亚洲一区二区3| 国产三级一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品无码一区二区三区| www.亚洲激情.com| 日韩国产欧美在线视频| 国产精品初高中害羞小美女文| 欧美一区日本一区韩国一区| 午夜国产福利一区二区| 亚洲天堂网一区二区| 9i看片成人免费高清| 久久成人免费网| 亚洲综合成人网| 欧美国产欧美综合| 欧美一区二区精美| 91九色最新地址| 精品丰满少妇一区二区三区|