成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:2日期:2022-06-21 13:24:04
1._thread.start_new_thread(了解)

import threadingimport timeimport _threaddef 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 threadingimport timedef 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 threadingimport timedef 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('程序執行結束.....')

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

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

-不使用多線程

import timefrom 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 wrapperdef 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’]))@timeitdef main(): ips = [’12.13.14.%s’ % (i + 1) for i in range(10)] for ip in ips:get_addr(ip)if __name__ == ’__main__’: main()

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

時間需要138.91秒。

-使用多線程

import threadingimport timefrom urllib.request import urlopendef 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 wrapperdef 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’]))@timeitdef 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()

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

3.重寫run方法

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

import threadingimport time# 重寫一個類,繼承于threading.Threadclass 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 threadingimport timefrom urllib.request import urlopendef 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 wrapperclass 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’]))@timeitdef 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 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美精品123区| 一区二区三区在线观看国产| 欧美午夜宅男影院| 久久久久高清| 久久中文字幕一区二区三区| 亚洲一区中文| 久久久青草婷婷精品综合日韩| 夜夜嗨av一区二区三区网站四季av| 亚洲高清网站| 国产精品视频久久一区| 免费在线欧美黄色| 在线影院国内精品| 制服丝袜亚洲色图| 午夜精品999| 亚洲成av人片在www色猫咪| 亚洲在线成人精品| 男男gaygay亚洲| 国产精品66部| 亚洲精品日韩一| 欧美精品久久天天躁| 国产成人aaa| 欧美日韩三区| 国产自产在线视频一区| 一区二区亚洲精品| 亚洲毛片av| 久久免费黄色| 91精品福利在线一区二区三区| 精品国产伦理网| 国产精品入口麻豆九色| 亚洲成人免费观看| 国产大陆亚洲精品国产| 欧美日韩一区综合| 久久婷婷丁香| 精品国产一区二区三区久久影院| 国产精品乱码一区二区三区软件| 亚洲一区二区四区蜜桃| 久久99热国产| 国产一区二区三区四区hd| 亚洲尤物精选| 日韩一区二区三区免费观看| 国产精品国产三级国产aⅴ中文| 亚洲一区二区三区美女| 国内一区二区在线| 亚洲国产精品久久久久婷婷老年| 色综合久久88色综合天天免费| 日韩午夜小视频| 一区二区三区视频在线看| 国产精品影视网| 99精品欧美| 欧美一级片在线看| 亚洲一区二区成人在线观看| 国产福利91精品一区二区三区| 99国产精品| 精品久久久久香蕉网| 亚洲一区二区三区视频在线| 成人手机电影网| 久久国产欧美精品| 欧美经典一区二区三区| 久久成人综合网| aa级大片欧美三级| 国产一区二区三区在线观看精品 | 欧美日韩一区 二区 三区 久久精品| 寂寞少妇一区二区三区| 欧美不卡福利| 中文字幕一区二区视频| 欧美精品二区三区四区免费看视频| 《视频一区视频二区| 日本精品一级二级| 午夜免费电影一区在线观看| 激情五月婷婷综合| 亚洲日本欧美天堂| 精品国产123| 亚洲午夜一区| 国产亚洲精品bt天堂精选| 久久综合伊人77777麻豆| 欧美性大战久久| 国产亚洲欧美一区在线观看| 亚洲另类春色国产| 国产精品大片免费观看| 国产精品s色| 亚洲女爱视频在线| 91色综合久久久久婷婷| 日韩美女啊v在线免费观看| 一区精品久久| 亚洲欧美另类综合偷拍| 99久久精品国产一区二区三区 | 中文字幕免费在线观看视频一区| 老牛嫩草一区二区三区日本| 日本在线不卡一区| 91福利国产成人精品照片| av一本久道久久综合久久鬼色| 成人动漫av在线| 日韩欧美一区二区三区在线| 欧美一区二区三区性视频| 91精品国产综合久久久蜜臀粉嫩 | 日韩视频在线一区二区| 国产资源精品在线观看| 国产欧美一区二区精品秋霞影院| 亚洲大片在线| 欧美专区一区二区三区| 色网站国产精品| 麻豆成人在线| 韩国av一区二区三区在线观看| 日韩丝袜情趣美女图片| 91免费观看视频| 午夜久久电影网| 久久影视一区二区| 欧美一级夜夜爽| 欧美激情自拍偷拍| 国产精品亚洲一区二区三区妖精 | 国色天香一区二区| 亚洲成人免费在线观看| 日韩三级精品电影久久久| 欧美一区激情| 欧美精品电影在线播放| 国产网站一区二区| 黑人巨大精品欧美一区| 国产麻豆成人精品| 亚洲欧美日韩一区在线观看| 国产成人av在线影院| 欧洲激情一区二区| 狠色狠色综合久久| 国产精品99久久久久久久女警| 一区二区三区视频在线看| 欧美不卡一区二区三区| 久久久久国产一区二区| 国产一区二区中文| 国产福利一区在线观看| 一区二区三区**美女毛片| 精品国产91久久久久久久妲己| 色偷偷成人一区二区三区91| 激情婷婷亚洲| 91视频一区二区三区| 激情综合亚洲精品| 亚洲aⅴ怡春院| 亚洲婷婷综合久久一本伊一区| 日韩免费看网站| 国产九九视频一区二区三区| 五月天网站亚洲| 亚洲人成在线观看一区二区| 精品国产一区二区三区四区四| 91福利视频久久久久| 国产日韩精品久久| 欧美福利影院| av中文一区二区三区| 久久成人18免费观看| 亚洲一线二线三线久久久| 亚洲欧洲精品天堂一级| 久久久综合网站| 精品国产免费久久| 欧美一区二区福利视频| 欧美日韩你懂得| 欧美亚洲国产一区二区三区| 国产美女精品人人做人人爽| 蜜桃精品视频在线观看| 亚洲成av人片| 欧美日韩一级视频| 欧美亚洲国产一区二区三区va| 国产欧美日韩视频在线观看| 亚洲欧美一区二区原创| 欧美va亚洲va香蕉在线| 色婷婷国产精品| 久久综合九色综合欧美狠狠| 中文在线一区| 免费国产一区二区| 亚洲精品自在在线观看| av不卡在线| 亚洲免费一区二区| 亚洲欧美电影在线观看| 国产区欧美区日韩区| 午夜亚洲视频| 狂野欧美性猛交xxxx巴西| 国产伦精品一区二区三区免费 | 日韩亚洲电影在线| 91精品国产91久久久久久最新毛片 | 一区二区三区日韩| 亚洲综合男人的天堂| 亚洲国产成人av网| 日韩精品电影在线| 久久精品国产精品亚洲精品| 狠狠色丁香婷婷综合| 国产91对白在线观看九色| zzijzzij亚洲日本少妇熟睡| 欧美韩日精品| 99国产精品视频免费观看一公开| 国产精品三上| 欧洲av在线精品| 欧美tickling挠脚心丨vk| 久久日一线二线三线suv| 中文无字幕一区二区三区| 亚洲免费观看高清完整版在线| 亚洲第四色夜色| 国产一区二区福利| 91麻豆国产精品久久| 99re66热这里只有精品4| 色婷婷精品大在线视频| 日韩欧美国产wwwww| 国产精品天美传媒沈樵| 亚洲成av人综合在线观看| 精品一区二区三区蜜桃|