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

Python文件多線程/多進(jìn)程機(jī)制詳解

 更新時(shí)間:2026年01月17日 14:58:35   作者:年六季  
文章主要介紹了Python程序在運(yùn)行時(shí)可能會(huì)自動(dòng)創(chuàng)建多個(gè)線程的情況,包括Python內(nèi)部的線程池、異步庫、第三方庫以及調(diào)試器自身的線程,文章還提供了判斷線程來源的方法,并總結(jié)了手動(dòng)創(chuàng)建線程的常見方式

Python 文件本身不會(huì)自動(dòng)創(chuàng)建多個(gè)線程,

但如果代碼或依賴的庫用了多線程/多進(jìn)程機(jī)制,它就會(huì)在運(yùn)行時(shí)自動(dòng)創(chuàng)建多個(gè)線程。

一、正常情況下(沒有主動(dòng)開線程)

def foo():
    print("hello")

foo()

或者即使是比較復(fù)雜的邏輯,比如深度學(xué)習(xí)推理、圖像處理、文件讀寫,

只要沒有顯式地使用線程或異步,

程序只運(yùn)行在一個(gè)主線程(MainThread)里。

此時(shí) VS Code 的調(diào)用堆棧中只會(huì)看到:

MainThread

二、為什么很多程序會(huì)“自動(dòng)”出現(xiàn)多個(gè)線程

很多人第一次調(diào)試時(shí)會(huì)驚訝地看到幾十個(gè)線程,其實(shí)大多數(shù)不是顯式創(chuàng)建的,而是:

來源舉例說明
Python 內(nèi)部運(yùn)行時(shí)ThreadPoolExecutor, asyncio, multiprocessing例如 ThreadPoolExecutor(max_workers=4) 會(huì)開 4 個(gè)線程去執(zhí)行任務(wù)。
第三方庫自動(dòng)創(chuàng)建OpenCV, PyTorch, TensorFlow, NumPy, requests 等為了提升性能,這些庫常在底層開線程。例如 PyTorch 的算子調(diào)用 BLAS/OpenMP 會(huì)自動(dòng)并行計(jì)算。
Jupyter / VSCode 調(diào)試器自身調(diào)試器、控制臺(tái) I/OVS Code 在調(diào)試時(shí)也會(huì)創(chuàng)建輔助線程用于通信、變量同步、斷點(diǎn)管理。
GPU 或底層加速庫cuDNN、MKL、OpenBLAS這些都是多線程實(shí)現(xiàn)的,Python 只是在上層調(diào)用它們。

所以:寫的 Python 文件是“單線程邏輯”,

但執(zhí)行時(shí) Python 解釋器 + 底層庫 會(huì)自動(dòng)生成多個(gè)輔助線程。

三、怎么判斷線程是誰創(chuàng)建的?

在調(diào)試器中點(diǎn)開線程名稱可以看到調(diào)用堆棧。

比如:

ThreadPoolExecutor-1_0
  -> torch/threadpool.py
  -> ...

Thread-208679
  -> site-packages/opencv/...

從路徑就能看出是哪個(gè)庫開的線程。

四、手動(dòng)創(chuàng)建線程的常見方式

如果自己在代碼里寫了這些,那是主動(dòng)多線程:

import threading

def worker(i):
    print(f"thread {i} running")

for i in range(5):
    t = threading.Thread(target=worker, args=(i,))
    t.start()

這時(shí)會(huì)在 VS Code 調(diào)試器里看到:

MainThread
Thread-1
Thread-2
Thread-3
...

五、總結(jié)

情況是否會(huì)自動(dòng)創(chuàng)建多線程說明
普通 Python 腳本? 否只有主線程
使用線程池、異步庫? 會(huì)用戶代碼開線程
使用深度學(xué)習(xí) / OpenCV / NumPy 等庫? 會(huì)底層自動(dòng)并行
VS Code 調(diào)試模式? 會(huì)調(diào)試器自己也會(huì)開輔助線程

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • PyHacker實(shí)現(xiàn)網(wǎng)站后臺(tái)掃描器編寫指南

    PyHacker實(shí)現(xiàn)網(wǎng)站后臺(tái)掃描器編寫指南

    這篇文章主要為大家介紹了PyHacker實(shí)現(xiàn)網(wǎng)站后臺(tái)掃描器編寫指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python?ttkbootstrap?制作賬戶注冊(cè)信息界面的案例代碼

    Python?ttkbootstrap?制作賬戶注冊(cè)信息界面的案例代碼

    ttkbootstrap 是一個(gè)基于 tkinter 的界面美化庫,使用這個(gè)工具可以開發(fā)出類似前端 bootstrap 風(fēng)格的 tkinter 桌面程序。本文重點(diǎn)給大家介紹Python?ttkbootstrap?制作賬戶注冊(cè)信息界面的案例代碼,感興趣的朋友一起看看吧
    2022-02-02
  • python獲取當(dāng)前文件所在目錄、獲取上級(jí)目錄的坑及解決

    python獲取當(dāng)前文件所在目錄、獲取上級(jí)目錄的坑及解決

    這篇文章主要介紹了python獲取當(dāng)前文件所在目錄、獲取上級(jí)目錄的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python如何限制輸入的數(shù)范圍

    Python如何限制輸入的數(shù)范圍

    在Python中,我們可以使用多種方法來限制用戶輸入的數(shù)值范圍,今天通過實(shí)例代碼給大家分享Python限制輸入的數(shù)范圍,感興趣的朋友一起看看吧
    2024-05-05
  • python中向二維數(shù)組中添加整行或者增列元素問題

    python中向二維數(shù)組中添加整行或者增列元素問題

    這篇文章主要介紹了python中向二維數(shù)組中添加整行或者增列元素問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Django博客系統(tǒng)注冊(cè)之創(chuàng)建用戶模塊應(yīng)用

    Django博客系統(tǒng)注冊(cè)之創(chuàng)建用戶模塊應(yīng)用

    本文主要介紹了Django博客系統(tǒng)注冊(cè)之創(chuàng)建用戶模塊應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python?matplotlib實(shí)戰(zhàn)之氣泡圖繪制

    Python?matplotlib實(shí)戰(zhàn)之氣泡圖繪制

    氣泡圖是一種多變量的統(tǒng)計(jì)圖表,可以看作是散點(diǎn)圖的變形,這篇文章主要為大家介紹了如何使用Matplotlib繪制氣泡圖,需要的小伙伴可以參考下
    2023-08-08
  • Python接口自動(dòng)化淺析unittest單元測試原理

    Python接口自動(dòng)化淺析unittest單元測試原理

    這篇文章主要介紹了Python接口自動(dòng)化淺析unittest單元測試原理,文中描述了單元測試,unittest模塊特性、大致流程、源碼及實(shí)戰(zhàn)例子這幾個(gè)模塊,有需要的朋友可以借鑒參考下
    2021-08-08
  • Python中那些 Pythonic的寫法詳解

    Python中那些 Pythonic的寫法詳解

    這篇文章主要介紹了Python中那些 Pythonic的寫法詳解,一份優(yōu)雅、干凈、整潔的代碼通常自帶文檔和注釋屬性,讀代碼即是讀作者的思路,需要的朋友可以參考下
    2019-07-07
  • python寫入文件自動(dòng)換行問題的方法

    python寫入文件自動(dòng)換行問題的方法

    這篇文章主要介紹了python寫入文件自動(dòng)換行問題的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

长葛市| 淮滨县| 年辖:市辖区| 五指山市| 上高县| 金坛市| 偏关县| 建水县| 河池市| 德钦县| 武汉市| 台山市| 岚皋县| 洪江市| 天峨县| 南靖县| 涿州市| 渝北区| 敖汉旗| 邻水| 铜陵市| 手游| 甘泉县| 孟津县| 漠河县| 通海县| 吉林省| 辉南县| 古丈县| 平罗县| 铁力市| 老河口市| 民县| 泽库县| 长治县| 霍山县| 桂林市| 四子王旗| 申扎县| 台湾省| 凤城市|