欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python多線程正確用法實例解析

 更新時間:2020年05月30日 17:03:49   作者:程序員的人生A  
這篇文章主要介紹了Python多線程正確用法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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 指定線程將要運行的函數(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ù),主線程運行到這一步,將會停下來等待子線程運行完畢。沒有這句,主線程則會忽略子線程,運行

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python 隨機數(shù)生成的代碼的詳細分析

    python 隨機數(shù)生成的代碼的詳細分析

    如果你對python隨機數(shù)生成的實際應用有不解之處,你就可以通過以下的內(nèi)容對其進行了解,以下十九相關內(nèi)容的介紹
    2011-05-05
  • 詳解Python3中的迭代器和生成器及其區(qū)別

    詳解Python3中的迭代器和生成器及其區(qū)別

    本篇將介紹Python3中的迭代器與生成器,描述可迭代與迭代器關系,并實現(xiàn)自定義類的迭代器模式。非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • 利用Opencv中Houghline方法實現(xiàn)直線檢測

    利用Opencv中Houghline方法實現(xiàn)直線檢測

    這篇文章主要為大家詳細介紹了利用Opencv中的Houghline方法進行直線檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python3.6實現(xiàn)連接mysql或mariadb的方法分析

    Python3.6實現(xiàn)連接mysql或mariadb的方法分析

    這篇文章主要介紹了Python3.6實現(xiàn)連接mysql或mariadb的方法,結(jié)合實例形式分析了Python3.6針對mysql或mariadb數(shù)據(jù)庫操作的相關模塊安裝、數(shù)據(jù)庫與表的創(chuàng)建、數(shù)據(jù)庫連接等操作技巧與注意事項,需要的朋友可以參考下
    2018-05-05
  • Python中字符串的修改及傳參詳解

    Python中字符串的修改及傳參詳解

    最近在一次使用python實現(xiàn)字符串反轉(zhuǎn)的時候,發(fā)現(xiàn)寫出的代碼居然是錯誤的,于是通過思考后決定要總結(jié)下這次的經(jīng)歷,于是寫了這篇文章,本文的內(nèi)容主要給大家介紹了Python中字符串的修改及傳參,有需要的朋友們可以參考借鑒,下面來一起學習學習吧。
    2016-11-11
  • Python的Django框架中從url中捕捉文本的方法

    Python的Django框架中從url中捕捉文本的方法

    這篇文章主要介紹了Python的Django框架中從url中捕捉文本的方法,以及URLconf搜索的一些相關情況,需要的朋友可以參考下
    2015-07-07
  • Python中讓MySQL查詢結(jié)果返回字典類型的方法

    Python中讓MySQL查詢結(jié)果返回字典類型的方法

    這篇文章主要介紹了Python中讓MySQL查詢結(jié)果返回字典類型的方法,默認情況下Mysql返回的是元組類型,本文實現(xiàn)了返回字典類型,需要的朋友可以參考下
    2014-08-08
  • Python利用字典將兩個通訊錄文本合并為一個文本實例

    Python利用字典將兩個通訊錄文本合并為一個文本實例

    這篇文章主要介紹了Python利用字典將兩個通訊錄文本合并為一個文本實例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python3實現(xiàn)多線程聊天室

    python3實現(xiàn)多線程聊天室

    這篇文章主要為大家詳細介紹了python3實現(xiàn)多線程聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • opencv?傅里葉變換的實現(xiàn)

    opencv?傅里葉變換的實現(xiàn)

    本文主要介紹了opencv?傅里葉變換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧<BR>
    2022-06-06

最新評論