最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python threading模塊的使用指南

 更新時間:2021年06月05日 15:32:22   作者:松鼠愛出餅干  
python的thread模塊是底層的模塊,python的threading模塊是對thread做了一些包裝的,可以更加方便的被使用。本文詳細(xì)的講述了threading模塊的用法

1. threding模塊創(chuàng)建線程對象

接上述案例,我們可以利用程序阻塞的時間讓程序執(zhí)行后面的任務(wù),可以用多線程的方式去實(shí)現(xiàn)。對應(yīng)的需要我們借助threading模塊去實(shí)現(xiàn):
如下所示

import time
import threading
def work():
"""只有函數(shù)對象才能佈田名線積"""
print('5.洗茶杯: 1min ' )
time.sleep(1)
print('6.放茶葉: 1min ' )
time.sleep(1)

start_time = time .time()
print( '1.洗壺: 1min ' )
time.s1eep(1)
print( '2.灌涼水:1min ' )
time.sleep(1)
print( '3.燒水: 1min ' )
time.sleep(1)
print( '4.等水燒開:3min ' )
work_thread = threading.Thread(target=work)

# 啟動線程對象
work_thread.start()
time.sleep(1) # 5.洗茶杯: 1min
time.sleep(1) # 6.放茶葉: 1min
time.sleep(1)
print( '7.泡茶:1min ' )
time.sleep(1)
print('總共花了: ',time.time() - start_time)

以上案例是一個單線程,需要特別注意的是threading模塊操作線程所操作的必須是函數(shù)對象。通過threding模塊可以把一個普通的函數(shù)對象轉(zhuǎn)化為線程對象。

2. threding模塊創(chuàng)建多線程

當(dāng)一個進(jìn)程啟動之后,會默認(rèn)產(chǎn)生一個主線程,因?yàn)榫€程是程序執(zhí)行流的最小單元,當(dāng)設(shè)置多線程時,主線程會創(chuàng)建多個子線程,在python中,默認(rèn)情況下,主線程執(zhí)行完自己的任務(wù)以后,就退出了,此時子線程會繼續(xù)執(zhí)行自己的任務(wù),直到自己的任務(wù)結(jié)束。

import time
import threading

def upload():
print("開始上傳文件...")
time.sleep(2)
print("完成上傳文件...")

def down1oad():
print("開始下載文件...")
time.s1eep(2)
print("完成下載文件...")

if __name__ == '__main__':
upload_thread = threading.Thread(target=up1oad)
up1oad_thread .start()
up1oad_thread.join()
down1oad_thread = threading.Thread(target=down1oad,daemon=True)
down1oad_thread.start()
print('主線程結(jié)束')

也就是說主線程在分配任務(wù)時會創(chuàng)建多個子線程,子線程的任務(wù)進(jìn)度不會阻礙主線程的執(zhí)行。但是主線程會等待子線程執(zhí)行任務(wù)完之后才結(jié)束主線程。也就是說實(shí)際上主線程是先執(zhí)行完任務(wù)的,如果你想在主線程執(zhí)行完之后就結(jié)束整個線程的話,那么可以設(shè)置守護(hù)主線程。

3. 多線程的參數(shù)傳遞

多線程的參數(shù)傳遞用args接受位置參數(shù),用kwargs接受關(guān)鍵字參數(shù)。如下所示:

import threading

def get(ur1,header=None):
    print(ur1)
    print(header)

for url in [ 'https : / /www.baidu.com', 'https:/ /www. soso.com ' ,' https: / /www . 360. com']:
    # threading.Thread
get_thread = threading. Thread(target=get,args=(ur1, ), kwargs={ ' header ':{ 'user-agent ' : ' pythonrequests'}})
    get_thread.start

4. 線程產(chǎn)生的資源競爭

首先我們來看一個案例:

import threading
import time
import random

def add1(n):
    for i in range(100) :
        time.sleep(random.randint(1,3))
        with open( 'he7lo.txt', mode='a', encoding='utf-8 ' ) as f:
            f.write(f'in} he1lo wor1d !'+ 'he7lo wor1d !'*1024)
            f.write(' \n ')

if __name__ == '___main__' :
    for n in range(10) :
        t1 = threading. Thread(target=add1,args=(n,))
        t1.start()

以上就是python threading模塊的使用指南的詳細(xì)內(nèi)容,更多關(guān)于python threading模塊的使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)疫情通定時自動填寫功能(附代碼)

    Python實(shí)現(xiàn)疫情通定時自動填寫功能(附代碼)

    這篇文章主要介紹了Python實(shí)現(xiàn)疫情通定時自動填寫功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python中的queue隊(duì)列類型及函數(shù)用法

    python中的queue隊(duì)列類型及函數(shù)用法

    這篇文章主要介紹了python中的queue隊(duì)列類型及函數(shù)用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python3讀取csv文件任意行列代碼實(shí)例

    python3讀取csv文件任意行列代碼實(shí)例

    這篇文章主要介紹了python3讀取csv文件任意行列代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python中?conda?虛擬環(huán)境管理和jupyter內(nèi)核管理

    python中?conda?虛擬環(huán)境管理和jupyter內(nèi)核管理

    這篇文章主要介紹了python中?conda?虛擬環(huán)境管理和jupyter內(nèi)核管理,文章基于pyhton以及conda的虛擬環(huán)境創(chuàng)建、刪除、jupyter添加、刪除虛擬kernel的方法,需要的朋友可以參考一下
    2022-04-04
  • 數(shù)據(jù)驅(qū)動測試DDT之Selenium讀取Excel文件

    數(shù)據(jù)驅(qū)動測試DDT之Selenium讀取Excel文件

    這篇文章主要為大家介紹了數(shù)據(jù)驅(qū)動測試DDT之Selenium讀取Excel文件,
    2021-11-11
  • pygame學(xué)習(xí)筆記(1):矩形、圓型畫圖實(shí)例

    pygame學(xué)習(xí)筆記(1):矩形、圓型畫圖實(shí)例

    這篇文章主要介紹了pygame學(xué)習(xí)筆記(1):矩形、圓型畫圖實(shí)例,本文講解了pygame窗口、窗口退出、pygame中的顏色、圓形、矩形及一個完整實(shí)例,需要的朋友可以參考下
    2015-04-04
  • Python中__init__.py文件的作用詳解

    Python中__init__.py文件的作用詳解

    __init__.py 文件的作用是將文件夾變?yōu)橐粋€Python模塊,Python 中的每個模塊的包中,都有__init__.py 文件.這篇文章主要介紹了Python中__init__.py文件的作用詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Python使用Tkinter?GUI實(shí)現(xiàn)輸入驗(yàn)證功能

    Python使用Tkinter?GUI實(shí)現(xiàn)輸入驗(yàn)證功能

    這篇文章主要介紹了Python中使用Tkinter?GUI實(shí)現(xiàn)輸入驗(yàn)證,文中通過一個完整示例代碼給大家介紹Python?Tkinter?GUI輸入驗(yàn)證功能,需要的朋友可以參考下
    2022-04-04
  • Django框架下在視圖中使用模版的方法

    Django框架下在視圖中使用模版的方法

    這篇文章主要介紹了Django框架下在視圖中使用模版的方法,Django是Python豐富多彩的眾框架中最有人氣的一個,需要的朋友可以參考下
    2015-07-07
  • pandas 給dataframe添加列名的兩種方法

    pandas 給dataframe添加列名的兩種方法

    DataFrame的單元格可以存放數(shù)值、字符串等,本文主要介紹了pandas 給dataframe添加列名的兩種方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評論

隆尧县| 石首市| 尤溪县| 栾川县| 丰县| 秀山| 梓潼县| 天镇县| 金塔县| 上蔡县| 柘城县| 双峰县| 日土县| 青海省| 崇文区| 北京市| 津南区| 宝丰县| 乐亭县| 景谷| 藁城市| 丰都县| 夹江县| 淄博市| 平度市| 花莲市| 龙门县| 五家渠市| 北安市| 镇原县| 上栗县| 外汇| 汉寿县| 任丘市| 永城市| 威海市| 哈密市| 西乌珠穆沁旗| 汉中市| 博野县| 连江县|