溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Python中多線程的案例分析

發布時間:2020-07-20 14:58:42 來源:億速云 閱讀:203 作者:清晨 欄目:編程語言

小編給大家分享一下關于Python中多線程的案例分析,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

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

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

function 是開發者定義的線程函數,

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

kwargs 是可選參數,字典類型。

調用 threading.Thread 之后,會創建一個新的線程,參數 target 指定線程將要運行的函數,args 和 kwargs 則指定函數的參數來執行 

function 函數。

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

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()

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

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

在第二個循環中,start 正式開啟子線程;

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

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

完自己的代碼后結束程序。

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

看完了這篇文章,相信你對關于Python中多線程的案例分析有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女