欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python如何創(chuàng)建線程-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

在金昌等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、做網(wǎng)站 網(wǎng)站設計制作按需制作網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,營銷型網(wǎng)站,成都外貿網(wǎng)站制作,金昌網(wǎng)站建設費用合理。

這期內容當中小編將會給大家?guī)碛嘘PPython如何創(chuàng)建線程,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Python 提供了 _thread 和 threading 兩個模塊來支持多線程,其中 _thread 提供低級別的、原始的線程支持,以及一個簡單的鎖,正如它的名字所暗示的,一般編程不建議使用 thread 模塊;而 threading 模塊則提供了功能豐富的多線程支持。

Python 主要通過兩種方式來創(chuàng)建線程:

使用 threading 模塊的 Thread 類的構造器創(chuàng)建線程。

繼承 threading 模塊的 Thread 類創(chuàng)建線程類。

調用 Thread 類的構造器創(chuàng)建線程

調用 Thread 類的構造器創(chuàng)建線程很簡單,直接調用 threading.Thread 類的如下構造器創(chuàng)建線程:

__init__(self, group=None, target=None, name=None, args=(), kwargs=None, *,daemon=None)

上面的構造器涉及如下幾個參數(shù):

group:指定該線程所屬的線程組。目前該參數(shù)還未實現(xiàn),因此它只能設為 None。

target:指定該線程要調度的目標方法。

args:指定一個元組,以位置參數(shù)的形式為 target 指定的函數(shù)傳入?yún)?shù)。元組的第一個元素傳給 target 函數(shù)的第一個參數(shù),元組的第二個元素傳給 target 函數(shù)的第二個參數(shù)……依此類推。

kwargs:指定一個字典,以關鍵字參數(shù)的形式為 target 指定的函數(shù)傳入?yún)?shù)。

daemon:指定所構建的線程是否為后代線程。

通過 Thread 類的構造器創(chuàng)建井啟動多線程的步驟如下:

調用 Thread 類的構造器創(chuàng)建線程對象。在創(chuàng)建線程對象時,target 參數(shù)指定的函數(shù)將作為線程執(zhí)行體。

調用線程對象的 start() 方法啟動該線程。

下面程序示范了通過 Thread 類的構造器來創(chuàng)建線程對象:

import threading

# 定義一個普通的action函數(shù),該函數(shù)準備作為線程執(zhí)行體
def action(max):
    for i in range(max):
        # 調用threading模塊current_thread()函數(shù)獲取當前線程
        # 線程對象的getName()方法獲取當前線程的名字
        print(threading.current_thread().getName() +  " " + str(i))
# 下面是主程序(也就是主線程的執(zhí)行體)
for i in range(100):
    # 調用threading模塊current_thread()函數(shù)獲取當前線程
    print(threading.current_thread().getName() +  " " + str(i))
    if i == 20:
        # 創(chuàng)建并啟動第一個線程
        t1 =threading.Thread(target=action,args=(100,))
        t1.start()
        # 創(chuàng)建并啟動第二個線程
        t2 =threading.Thread(target=action,args=(100,))
        t2.start()
print('主線程執(zhí)行完成!')

上面程序中的主程序包含一個循環(huán),當循環(huán)變量 i 等于 20 時創(chuàng)建并啟動兩個新線程:

創(chuàng)建了一個 Thread 對象,該線程的 target 為 action,這意味著它會將 action 函數(shù)作為線程執(zhí)行體。接下來程序調用 start() 方法來啟動t1線程。

再次創(chuàng)建了一個線程,其創(chuàng)建和啟動方式與第一個線程完全相同。

運行上面程序,將會看到如圖所示的界面。

Python如何創(chuàng)建線程

雖然上面程序只顯式創(chuàng)建并啟動了兩個線程,但實際上程序有三個線程,即程序顯式創(chuàng)建的兩個子線程和主線程。前面己經(jīng)提到,當 Python 程序開始運行后,程序至少會創(chuàng)建一個主線程,主線程的線程執(zhí)行體就是程序中的主程序(沒有放在任何函數(shù)中的代碼)。

從上圖可以看出,此時程序中共包含三個線程,這三個線程的執(zhí)行沒有先后順序,它們以并發(fā)方式執(zhí)行:Thread-1 執(zhí)行一段時間,然后可能 Thread-2 或 MainThread 獲得 CPU 執(zhí)行一段時間,接下來又換其他線程執(zhí)行,這就是典型的線程并發(fā)執(zhí)行,CPU 以快速輪換的方式在多個線程之間切換,從而給用戶一種錯覺,即多個線程似乎同時在執(zhí)行。

通過上面介紹不難看出多線程的意義,如果不使用多線程,主程序直接調用兩次 action() 函數(shù),那么程序必須等第一次調用的 action() 函數(shù)執(zhí)行完成,才會執(zhí)行第二次調用的 action() 函數(shù);必須等第二次調用的 action() 函數(shù)執(zhí)行完成,才會繼續(xù)向下執(zhí)行主程序。

上述就是小編為大家分享的Python如何創(chuàng)建線程了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道。

文章名稱:Python如何創(chuàng)建線程-創(chuàng)新互聯(lián)
瀏覽地址:http://www.chinadenli.net/article12/dhcegc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)ChatGPT域名注冊網(wǎng)站制作服務器托管用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網(wǎng)站制作