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

python threading模塊的使用指南

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

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

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

import time
import threading
def work():
"""只有函數(shù)對(duì)象才能佈田名線積"""
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)

# 啟動(dòng)線程對(duì)象
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)

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

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

當(dāng)一個(gè)進(jìn)程啟動(dòng)之后,會(huì)默認(rèn)產(chǎn)生一個(gè)主線程,因?yàn)榫€程是程序執(zhí)行流的最小單元,當(dāng)設(shè)置多線程時(shí),主線程會(huì)創(chuàng)建多個(gè)子線程,在python中,默認(rèn)情況下,主線程執(zhí)行完自己的任務(wù)以后,就退出了,此時(shí)子線程會(huì)繼續(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ù)時(shí)會(huì)創(chuàng)建多個(gè)子線程,子線程的任務(wù)進(jìn)度不會(huì)阻礙主線程的執(zhí)行。但是主線程會(huì)等待子線程執(zhí)行任務(wù)完之后才結(jié)束主線程。也就是說實(shí)際上主線程是先執(zhí)行完任務(wù)的,如果你想在主線程執(zhí)行完之后就結(jié)束整個(gè)線程的話,那么可以設(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)生的資源競(jìng)爭(zhēng)

首先我們來看一個(gè)案例:

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模塊的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python數(shù)據(jù)結(jié)構(gòu)之二叉樹的統(tǒng)計(jì)與轉(zhuǎn)換實(shí)例

    python數(shù)據(jù)結(jié)構(gòu)之二叉樹的統(tǒng)計(jì)與轉(zhuǎn)換實(shí)例

    這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之二叉樹的統(tǒng)計(jì)與轉(zhuǎn)換實(shí)例,例如統(tǒng)計(jì)二叉樹的葉子、分支節(jié)點(diǎn),以及二叉樹的左右兩樹互換等,需要的朋友可以參考下
    2014-04-04
  • pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法

    pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法

    這篇文章主要介紹了pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 基于Python實(shí)現(xiàn)圖片九宮格切圖程序

    基于Python實(shí)現(xiàn)圖片九宮格切圖程序

    這篇文章主要為大家詳細(xì)介紹了如何利用python和C++代碼實(shí)現(xiàn)圖片九宮格切圖程序,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-04-04
  • python實(shí)現(xiàn)定時(shí)發(fā)送郵件

    python實(shí)現(xiàn)定時(shí)發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 淺談scrapy 的基本命令介紹

    淺談scrapy 的基本命令介紹

    下面小編就為大家?guī)硪黄獪\談scrapy 的基本命令介紹。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)

    Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)

    本文主要介紹了Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 使用pyinstaller逆向.pyc文件

    使用pyinstaller逆向.pyc文件

    這篇文章主要介紹了使用pyinstaller逆向.pyc文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • python中sys模塊是做什么用的

    python中sys模塊是做什么用的

    在本篇文章里小編給大家分享了一篇關(guān)于python中sys模塊的用法及相關(guān)基礎(chǔ)知識(shí)點(diǎn),有興趣的朋友們可以參考下。
    2020-08-08
  • Python協(xié)程原理全面分析

    Python協(xié)程原理全面分析

    協(xié)程(co-routine,又稱微線程、纖程)是一種多方協(xié)同的工作方式。協(xié)程不是進(jìn)程或線程,其執(zhí)行過程類似于Python函數(shù)調(diào)用,Python的asyncio模塊實(shí)現(xiàn)的異步IO編程框架中,協(xié)程是對(duì)使用async關(guān)鍵字定義的異步函數(shù)的調(diào)用
    2023-02-02
  • Matlab實(shí)現(xiàn)時(shí)間序列預(yù)測(cè)分類實(shí)例代碼

    Matlab實(shí)現(xiàn)時(shí)間序列預(yù)測(cè)分類實(shí)例代碼

    時(shí)間序列是按時(shí)間順序排列的、隨時(shí)間變化且相互關(guān)聯(lián)的數(shù)據(jù)序列,這篇文章主要給大家介紹了關(guān)于Matlab實(shí)現(xiàn)時(shí)間序列預(yù)測(cè)分類的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評(píng)論