国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】多線程編程 ① ( 線程相關(guān)概念 | 進(jìn)程 | 線程 | 協(xié)程 / 纖程 | 管程 )

這篇具有很好參考價(jià)值的文章主要介紹了【Python】多線程編程 ① ( 線程相關(guān)概念 | 進(jìn)程 | 線程 | 協(xié)程 / 纖程 | 管程 )。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。





一、線程相關(guān)概念




1、進(jìn)程


進(jìn)程 與 操作系統(tǒng) : 進(jìn)程 是 操作系統(tǒng) 中 能夠獨(dú)立運(yùn)行的單元 , 是 操作系統(tǒng) 對(duì) 正在運(yùn)行的 應(yīng)用程序 的 抽象結(jié)構(gòu) 描述 ;

  • 操作系統(tǒng) 中 運(yùn)行的每個(gè) 應(yīng)用程序 就是一個(gè)進(jìn)程 ;
  • 一個(gè)操作系統(tǒng)中可以運(yùn)行 多個(gè) 進(jìn)程 ;
  • 每個(gè) 應(yīng)用程序 都會(huì)被 操作系統(tǒng) 分配一個(gè) 進(jìn)程 ID ;
  • 多個(gè)進(jìn)程之間 , 可以通過 管道 / 套接字 / 信號(hào)量 / 共享內(nèi)存 進(jìn)行通信 ;

進(jìn)程 與 資源 :

  • 進(jìn)程 是 操作系統(tǒng) 中 , 能夠 獨(dú)立運(yùn)行 和 資源分配 的 基本單位 , 進(jìn)程運(yùn)行需要消耗 CPU / 硬盤 / 內(nèi)存 / IO 設(shè)備 等資源 ;
  • 進(jìn)程的本質(zhì) 是 機(jī)器碼指令 + 數(shù)據(jù) + 內(nèi)存 ( 堆內(nèi)存 / 棧內(nèi)存 ) 組成的 可 獨(dú)立運(yùn)行 的實(shí)體 ;

2、線程


進(jìn)程 調(diào)度 涉及到 CPU / 硬盤 / 內(nèi)存 / IO 設(shè)備 等多種資源 , 調(diào)度開銷很大 , 效率很低 ;

為了 提高 資源調(diào)度效率 , 提出了 " 線程 " 概念 , 線程 的 運(yùn)行 和 調(diào)度 相對(duì)于 進(jìn)程 都是 輕量級(jí)的 ;

  • 線程 比 進(jìn)程 更加 輕量級(jí) ;
  • 調(diào)度資源 成本 比 進(jìn)程要低 ;

線程 是 操作系統(tǒng)中 獨(dú)立運(yùn)行 和 資源分配 的 最小單位 ;


一個(gè)進(jìn)程可以同時(shí)運(yùn)行多個(gè)線程 , 引入線程 可以 提高 操作系統(tǒng)的 并發(fā)效率 ;

在同一個(gè)進(jìn)程中 , 多個(gè)線程可以共享該進(jìn)程的 CPU / 硬盤 / 內(nèi)存 / IO 設(shè)備 等多種資源 ;


3、協(xié)程 / 纖程


" 協(xié)程 " 是 輕量級(jí) 的 線程 , 一個(gè)線程 可以包含 多個(gè) " 協(xié)程 " ;

" 協(xié)程 " 是 由 用戶空間 的 應(yīng)用程序 控制的 , 內(nèi)核空間 的 操作系統(tǒng)內(nèi)核 對(duì)此 一無所知 , 也就是說 協(xié)程 對(duì) 內(nèi)核 來說是隱藏的 ;

操作系統(tǒng) 無法 調(diào)度 " 協(xié)程 " ;


協(xié)程 有自己的 寄存器上下文 和 棧 , 協(xié)程調(diào)度時(shí) ,

  • 協(xié)程掛起 需要將 寄存器上下文 和 棧 保存起來 ,
  • 協(xié)程恢復(fù) 時(shí) 再 恢復(fù) 寄存器上下文 和 棧 ;

協(xié)程 需要 依托 線程 執(zhí)行 , 同一時(shí)間 一個(gè) 線程 只能 執(zhí)行一個(gè)協(xié)程任務(wù) ,

協(xié)程 有 掛起 和 恢復(fù) 兩種狀態(tài) , 在線程中 , 協(xié)程恢復(fù) 則 開始執(zhí)行協(xié)程 , 線程不能再執(zhí)行其它代碼操作 , 協(xié)程掛起 則停止執(zhí)行協(xié)程 , 線程繼續(xù)執(zhí)行其它代碼邏輯 ;

在主線程中執(zhí)行協(xié)程任務(wù) , 協(xié)程掛起后 , 會(huì)繼續(xù)執(zhí)行主線程的其它操作 , 不會(huì)阻塞主線程 ;


在 一個(gè) 線程 中 , 可以定義多個(gè) 協(xié)程 任務(wù) , 可以任意切換 協(xié)程 任務(wù) 執(zhí)行 , 同一時(shí)間只能運(yùn)行一個(gè)協(xié)程任務(wù) ;


協(xié)程 和 纖程 是 相同的概念 , 在不同的開發(fā)平臺(tái) / 場景 中的 對(duì)同一個(gè)概念的表述 ,

  • Kotlin 中叫做 " 協(xié)程 "
  • Windows 中叫做 " 纖程 "


4、管程


" 管程 " 是 用于 管理 共享資源 的 程序結(jié)構(gòu) ;

" 管程 " 提供了 可以 確保 多個(gè)進(jìn)程 訪問 臨界資源 的 同步機(jī)制 ;


臨界資源 是 一次僅允許一個(gè)進(jìn)程使用的 共享資源 , 多個(gè)進(jìn)程只能互斥訪問的資源 ;

  • 屬于臨界資源的硬件有打印機(jī)、磁帶機(jī)等;
  • 屬于臨界資源的軟件有消息隊(duì)列、變量、數(shù)組、緩沖區(qū)等。

進(jìn)程間采取互斥方式 , 實(shí)現(xiàn)對(duì)這種資源的共享 ;文章來源地址http://www.zghlxwxcb.cn/news/detail-608815.html

到了這里,關(guān)于【Python】多線程編程 ① ( 線程相關(guān)概念 | 進(jìn)程 | 線程 | 協(xié)程 / 纖程 | 管程 )的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [Python系列] 線程、協(xié)程、進(jìn)程和分布式

    ? ? ? ? 我們在寫腳本的時(shí)候,經(jīng)常是單線程跑完了全部,畢竟自頂向下按照我們約定的方法運(yùn)行下去是最規(guī)范的。但是很多時(shí)候,比如說合法地爬取一些網(wǎng)頁信息,圖片和資料啊,或者說一些合法的網(wǎng)絡(luò)請(qǐng)求,讀寫文件之類的。如果還是單線程地one by one,那么將會(huì)影響我們

    2024年02月16日
    瀏覽(27)
  • 【Python爬蟲與數(shù)據(jù)分析】進(jìn)程、線程、協(xié)程

    【Python爬蟲與數(shù)據(jù)分析】進(jìn)程、線程、協(xié)程

    目錄 一、概述 二、進(jìn)程的創(chuàng)建 三、線程的創(chuàng)建 四、協(xié)程的創(chuàng)建 五、全局變量的共享問題 六、消息隊(duì)列與互斥鎖 七、池化技術(shù) 進(jìn)程是系統(tǒng)分配資源的基本單位,線程是CPU調(diào)度的基本單位。 一個(gè)進(jìn)程可包含多個(gè)線程,一個(gè)線程可包含多個(gè)協(xié)程,協(xié)程就是最小的任務(wù)執(zhí)行單位

    2024年02月13日
    瀏覽(27)
  • Java/Python/Go不同開發(fā)語言在進(jìn)程、線程和協(xié)程的設(shè)計(jì)差異

    Java/Python/Go不同開發(fā)語言在進(jìn)程、線程和協(xié)程的設(shè)計(jì)差異

    在多線程項(xiàng)目開發(fā)時(shí),最常用、最常遇到的問題是 1,線程、協(xié)程安全 2,線程、協(xié)程間的通信和控制 本文主要探討不同開發(fā)語言go、java、python在進(jìn)程、線程和協(xié)程上的設(shè)計(jì)和開發(fā)方式的異同。 進(jìn)程 進(jìn)程是 操作系統(tǒng)進(jìn)行資源分配的基本單位,每個(gè)進(jìn)程都有自己的獨(dú)立內(nèi)存空

    2024年01月23日
    瀏覽(21)
  • Python 華為面試手撕代碼 + 八股文,機(jī)器學(xué)習(xí)參數(shù)調(diào)節(jié),損失函數(shù),激活函數(shù),線程、進(jìn)程和協(xié)程

    Python 華為面試手撕代碼 + 八股文,機(jī)器學(xué)習(xí)參數(shù)調(diào)節(jié),損失函數(shù),激活函數(shù),線程、進(jìn)程和協(xié)程

    一、手撕代碼:力扣原題905 二、八股文部分:有點(diǎn)緊張,忘了好多東西 1.深度學(xué)習(xí)模型優(yōu)化的方法有哪些? 深度學(xué)習(xí)模型的優(yōu)化策略包括以下幾個(gè)方面: (1)選擇合適的激活函數(shù):激活函數(shù)對(duì)模型的表達(dá)能力和收斂速度有很大影響,常用的激活函數(shù)包括ReLU、Sigmoid、Tanh等。

    2024年02月09日
    瀏覽(23)
  • 操作系統(tǒng)進(jìn)程線程(一)—進(jìn)程線程協(xié)程區(qū)別、多進(jìn)程多線程、進(jìn)程調(diào)度算法、進(jìn)程線程通信

    操作系統(tǒng)進(jìn)程線程(一)—進(jìn)程線程協(xié)程區(qū)別、多進(jìn)程多線程、進(jìn)程調(diào)度算法、進(jìn)程線程通信

    定義上 進(jìn)程: 資源分配和擁有 的基本單位,是調(diào)度的基本單位。 運(yùn)行一個(gè)可執(zhí)行程序會(huì)創(chuàng)建一個(gè)或者多個(gè)進(jìn)程;進(jìn)程就是運(yùn)行起來的程序 線程:程序 執(zhí)行 基本單位,輕量級(jí)進(jìn)程。 每個(gè)進(jìn)程中都有唯一的主線程 ,主線程和進(jìn)程是相互依賴的關(guān)系。 協(xié)程: 用戶態(tài) 的輕量級(jí)

    2024年02月01日
    瀏覽(96)
  • 什么是進(jìn)程、線程、協(xié)程

    什么是進(jìn)程、線程、協(xié)程

    我們都知道計(jì)算機(jī)的核心是CPU,它承擔(dān)了所有的計(jì)算任務(wù);而操作系統(tǒng)是計(jì)算機(jī)的管理者,它負(fù)責(zé)任務(wù)的調(diào)度、資源的分配和管理,統(tǒng)領(lǐng)整個(gè)計(jì)算機(jī)硬件;應(yīng)用程序則是具有某種功能的程序,程序是運(yùn)行于操作系統(tǒng)之上的。 進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集上

    2024年02月13日
    瀏覽(26)
  • 線程 進(jìn)程 協(xié)程 區(qū)別

    在并發(fā)編程中,\\\"線程\\\"和\\\"協(xié)程\\\"都是用于實(shí)現(xiàn)并發(fā)執(zhí)行的概念,但它們有一些重要的區(qū)別。 線程(Thread): 線程是操作系統(tǒng)的概念,是操作系統(tǒng)調(diào)度的最小執(zhí)行單位,是進(jìn)程中的一個(gè)實(shí)體,表示程序執(zhí)行的基本單元。 線程由操作系統(tǒng)內(nèi)核調(diào)度和管理,它擁有自己的執(zhí)行上下文

    2024年02月04日
    瀏覽(33)
  • 進(jìn)程,線程,協(xié)程

    1、進(jìn)程 進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)??數(shù)據(jù)集??合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。每個(gè)進(jìn)程都有自己的獨(dú)立內(nèi)存空間,不同進(jìn)程通過進(jìn)程間通信來通信。由于進(jìn)程比較重量,占據(jù)獨(dú)立的內(nèi)存,所以上下文進(jìn)程間的切換開銷

    2024年02月11日
    瀏覽(27)
  • Linux的進(jìn)程,協(xié)程和線程

    Linux的進(jìn)程、協(xié)程和線程是計(jì)算機(jī)科學(xué)中重要的概念,它們在操作系統(tǒng)和并發(fā)編程中發(fā)揮著關(guān)鍵的作用。讓我們逐個(gè)詳解這些概念,并討論它們之間的關(guān)系。 進(jìn)程是操作系統(tǒng)中的一個(gè)執(zhí)行單元,它包含了程序執(zhí)行所需的所有資源,如內(nèi)存空間、文件描述符、寄存器等。 進(jìn)程是

    2024年01月23日
    瀏覽(20)
  • 1.Unity協(xié)程、進(jìn)程、線程的區(qū)別

    1.Unity協(xié)程、進(jìn)程、線程的區(qū)別

    1、 進(jìn)程 擁有自己獨(dú)立的堆和棧,堆和棧都不共享,進(jìn)程由操作系統(tǒng)調(diào)度。 2、 線程 有自己獨(dú)立的棧和共享的堆,棧不共享,堆共享,標(biāo)準(zhǔn)的線程也是由系統(tǒng)調(diào)度。 3、 協(xié)程 有自己獨(dú)立的棧和共享的堆,棧不共享,堆共享,協(xié)程由程序員在協(xié)程的代碼里面調(diào)度。 協(xié)程多與線

    2024年02月03日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包