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

Python創(chuàng)建多線程的兩種常用方法總結(jié)

 更新時間:2023年05月16日 11:52:16   作者:不想賴床  
這篇文章主要為大家詳細(xì)介紹了Python中創(chuàng)建多線程的兩種常用方法,文中的示例代碼簡潔易懂,對我們掌握Python有一定的幫助,需要的可以收藏一下

經(jīng)過總結(jié),Python創(chuàng)建多線程主要有如下兩種方法:

  • 函數(shù)

接下來,我們就來揭開多線程的神秘面紗。

1. 用函數(shù)創(chuàng)建多線程

在Python3中,Python提供了一個內(nèi)置模塊 threading.Thread,可以很方便地讓我們創(chuàng)建多線程。

threading.Thread() 一般接收兩個參數(shù):

  • 線程函數(shù)名:要放置線程讓其后臺執(zhí)行的函數(shù),由我們自已定義,注意不要加();
  • 線程函數(shù)的參數(shù):線程函數(shù)名所需的參數(shù),以元組的形式傳入。若不需要參數(shù),可以不指定。

舉個例子

import time
from threading import Thread

# 自定義線程函數(shù)。
def target(name="Python"):
    for i in range(2):
        print("hello", name)
        time.sleep(1)

# 創(chuàng)建線程01,不指定參數(shù)
thread_01 = Thread(target=target)
# 啟動線程01
thread_01.start()


# 創(chuàng)建線程02,指定參數(shù),注意逗號
thread_02 = Thread(target=target, args=("MING",))
# 啟動線程02
thread_02.start()

可以看到輸出

hello Python
hello MING
hello Python
hello MING

2. 用類創(chuàng)建多線程

相比較函數(shù)而言,使用類創(chuàng)建線程,會比較麻煩一點。

首先,我們要自定義一個類,對于這個類有兩點要求,

  • 必須繼承 threading.Thread 這個父類;
  • 必須復(fù)寫 run 方法。

這里的 run 方法,和我們上面線程函數(shù)的性質(zhì)是一樣的,可以寫我們的業(yè)務(wù)邏輯程序。在 start() 后將會調(diào)用。

來看一下例子 為了方便對比,run函數(shù)我復(fù)用上面的main。

import time
from threading import Thread

class MyThread(Thread):
    def __init__(self, type="Python"):
        # 注意:super().__init__() 必須寫
        # 且最好寫在第一行
        super().__init__()
        self.type=type

    def run(self):
        for i in range(2):
            print("hello", self.type)
            time.sleep(1)

if __name__ == '__main__':
    # 創(chuàng)建線程01,不指定參數(shù)
    thread_01 = MyThread()
    # 創(chuàng)建線程02,指定參數(shù)
    thread_02 = MyThread("MING")

    thread_01.start()
    thread_02.start()

當(dāng)然結(jié)果也是一樣的。

hello Python
hello MING
hello Python
hello MING

3. 線程對象的方法

上面介紹了當(dāng)前 Python 中創(chuàng)建線程兩種主要方法。

創(chuàng)建線程是件很容易的事,但要想用好線程,還需要學(xué)習(xí)線程對象的幾個函數(shù)。

經(jīng)過我的總結(jié),大約常用的方法有如下這些:

# 如上所述,創(chuàng)建一個線程
t=Thread(target=func)

# 啟動子線程
t.start()

# 阻塞子線程,待子線程結(jié)束后,再往下執(zhí)行
t.join()

# 判斷線程是否在執(zhí)行狀態(tài),在執(zhí)行返回True,否則返回False
t.is_alive()
t.isAlive()

# 設(shè)置線程是否隨主線程退出而退出,默認(rèn)為False
t.daemon = True
t.daemon = False

# 設(shè)置線程名
t.name = "My-Thread"

到此這篇關(guān)于Python創(chuàng)建多線程的兩種常用方法總結(jié)的文章就介紹到這了,更多相關(guān)Python創(chuàng)建多線程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python collections模塊的使用技巧

    Python collections模塊的使用技巧

    Python的最大優(yōu)勢之一是其廣泛的模塊和軟件包。這將Python的功能擴(kuò)展到許多受歡迎的領(lǐng)域,包括機器學(xué)習(xí)、數(shù)據(jù)科學(xué)和Web開發(fā)等, 其中最好的模塊之一是Python的內(nèi)置collections 模塊。
    2021-04-04
  • 使用python和Django完成博客數(shù)據(jù)庫的遷移方法

    使用python和Django完成博客數(shù)據(jù)庫的遷移方法

    下面小編就為大家分享一篇使用python和Django完成博客數(shù)據(jù)庫的遷移方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Python中異常的捕獲與處理詳解

    Python中異常的捕獲與處理詳解

    這篇文章主要介紹了Python中異常的捕獲與處理詳解,調(diào)試Python程序時,經(jīng)常會報出一些異常,異常的原因一方面可能是寫程序時由于疏忽或者考慮不全造成了錯誤,這時就需要根據(jù)異常Traceback到出錯點,進(jìn)行分析改正,需要的朋友可以參考下
    2023-08-08
  • Django實現(xiàn)快速分頁的方法實例

    Django實現(xiàn)快速分頁的方法實例

    分頁是我們?nèi)粘i_發(fā)中必不可少的一個功能,下面這篇文章主要給大家介紹了關(guān)于Django如何實現(xiàn)快速分頁的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • 完美解決在oj中Python的循環(huán)輸入問題

    完美解決在oj中Python的循環(huán)輸入問題

    今天小編就為大家分享一篇完美解決在oj中Python的循環(huán)輸入問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python實現(xiàn)Singleton模式的方式詳解

    Python實現(xiàn)Singleton模式的方式詳解

    這篇文章主要介紹了Python實現(xiàn)Singleton模式的方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python和Go語言的區(qū)別總結(jié)

    Python和Go語言的區(qū)別總結(jié)

    在本篇文章里小編給大家分享了關(guān)于Python和Go語言的區(qū)別相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • Jmeter HTTPS接口測試證書導(dǎo)入過程圖解

    Jmeter HTTPS接口測試證書導(dǎo)入過程圖解

    這篇文章主要介紹了Jmeter HTTPS接口測試證書導(dǎo)入過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 使用python實現(xiàn)數(shù)組、鏈表、隊列、棧的方法

    使用python實現(xiàn)數(shù)組、鏈表、隊列、棧的方法

    數(shù)據(jù)結(jié)構(gòu)是指相互之間存在著一種或多種關(guān)系的數(shù)據(jù)元素的集合和該集合中數(shù)據(jù)元素之間的關(guān)系組成。這篇文章主要介紹了使用python實現(xiàn)數(shù)組、鏈表、隊列、棧的相關(guān)知識,需要的朋友可以參考下
    2019-12-12
  • 如何利用pyinstaller打包Python程序為exe可執(zhí)行文件

    如何利用pyinstaller打包Python程序為exe可執(zhí)行文件

    這篇文章主要給大家介紹了關(guān)于如何利用pyinstaller打包Python程序為exe可執(zhí)行文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論