国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python多線程正確用法實(shí)例解析

瀏覽:132日期:2022-07-23 18:07:17

python 里有一個 threading 模塊,其中提供了一個函數(shù):

threading.Thread(target=function, args=(), kwargs={})

function 是開發(fā)者定義的線程函數(shù),

args 是傳遞給線程函數(shù)的參數(shù),必須是tuple類型,

kwargs 是可選參數(shù),字典類型。

調(diào)用 threading.Thread 之后,會創(chuàng)建一個新的線程,參數(shù) target 指定線程將要運(yùn)行的函數(shù),args 和 kwargs 則指定函數(shù)的參數(shù)來執(zhí)行

function 函數(shù)。

改寫一下前面的代碼,將抓取的部分放在一個函數(shù)中:

def get_weather(city): req = requests.get(’http://wthrcdn.etouch.cn/weather_mini?city=%s’ % city) dic_city = req.json() city_data = dic_city.get(’data’) # 沒有’data‘的話返回 [] print(city_data.get(’city’)) if city_data: city_forecast = city_data[’forecast’][0] # 下面的都可以換成’get’方法 print(city_forecast.get(’date’)) print(city_forecast.get(’high’)) print(city_forecast.get(’low’)) print(city_forecast.get(’type’)) else: print(’未獲得’) print()

之后,程序采用了三個循環(huán),在第一個循環(huán)中,針對每一個城市,都創(chuàng)建了一個新線程,并將線程加入到一個列表中,用于之后的啟動。

threads = []cities = [’北京’, ’南京’, ’上海’, ’深圳’, ’廣州’, ’杭州’, ’蘇州’, ’天津’, ’西安’, ’成都’]files = range(len(cities))for i in files: # 創(chuàng)建線程 t = threading.Thread(target=get_weather, args=(cities[i],)) threads.append(t)

在第二個循環(huán)中,start 正式開啟子線程;

for i in files: threads[i].start()

在第三個循環(huán)中,join 用來同步數(shù)據(jù),主線程運(yùn)行到這一步,將會停下來等待子線程運(yùn)行完畢。沒有這句,主線程則會忽略子線程,運(yùn)行

完自己的代碼后結(jié)束程序。

for i in files: threads[i].join()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 宁津县| 池州市| 远安县| 封丘县| 沾化县| 天祝| 梨树县| 金坛市| 奈曼旗| 鹰潭市| 临江市| 濮阳市| 乐安县| 平乡县| 新建县| 宜兰市| 文登市| 佳木斯市| 客服| 韩城市| 新绛县| 莱州市| 长汀县| 达州市| 宜城市| 喀喇| 沾化县| 安达市| 墨竹工卡县| 沅陵县| 松江区| 手游| 景洪市| 杭州市| 大连市| 华池县| 张掖市| 永修县| 五莲县| 五台县| 清涧县|