python基礎23 -----進程和線程

來源:互聯網
上載者:User

標籤:個數   運行   提高   同步   之間   上下   子集   執行   補充   

一、進程

  1、什麼是進程?

   1.1 進程就是一個程式在一個資料集上的一次動態執行過程。進程一般由程式、資料集、進程式控制制塊三部分組成。

   1.2 程式是指進程需要完成那些功能以及如何完成。

   1.3 資料集是指程式在執行過程中所需要使用的資源。

   1.4進程式控制制塊用來記錄進程的外部特徵,描述進程的執行變化過程,系統可以利用他來控制和管理進程,他是系統感知進程存在的唯

     一標識

二、線程

  1、為什麼會有線程?

    1.1線程是為了降低環境切換的消耗,提高系統的並發性,突破一個進程只能幹一件事的局限。

  2、什麼是線程?

    2.1線程是輕量級進程,他是一個基本的cpu執行單元,也是程式執行過程中的最小單元。由線程ID,程式計數器,寄存器集合,

      和堆棧共同組成。

·  3、線程的好處?

    3.1 減少了程式並發執行的消耗,提高了作業系統的並發效能,但是線程沒有自己的系統資源,是由進程分配的。

三、進程和線程的關係

  1、一個線程只能屬於一個進程,而一個進程可以有多個線程,但是最少必須有一個主線程。

  2、系統資源分派給進程,進程下的所有線程共用分配給該進程的所有資源。

  3、CPU分配給線程,即真正在cpu上啟動並執行是線程。

四、並行和並發

  1、什麼是平行處理?

    平行處理指的是電腦cpu同事處理兩個或兩個以上的線程或者說是程式。

  2、什麼是並發處理?

    並發處理指的是電腦cpu在一段時間內能切換處理多少個進程。

  3、二者之間的關係?

    並行是並發的子集,並發是並行的父集。

  4、補充知識點

    串列:串列指的是cpu按順序執行程式。

五、同步和非同步

  1、什麼是同步?

    同步就是指一個進程在執行某個請求時,若該請求需要一段時間才能返回資訊,那麼這個進程就會一直等待下去直到

      接收到該請求的返回資訊才會執行下面的操作。

  2、什麼是非同步?

    非同步是指一個進程在執行某個請求後,若該請求需要一段時間才能返回資訊,但是該進程不會等待該請求,而是直接執行下面的操作

      當該請求有返回資訊時作業系統會通知進程進行處理,這種非同步處理的機制大大提高了程式的執行效率。

六、密集型任務

  1、IO密集型任務

    程式存在大量IO操作,比如說sleep,input,accert,等等。

  2、計算密集型任務

    程式存在大量的計算操作,除IO操作外的程式都是計算操作。

  3、在多執行緒程式的情況下,IO密集型任務比計算密集型任務更有優勢。

  4、補充:對應python而言,無法利用多核,因為他的進程有一個lock鎖的機制,

    

  

    

      

 

 

 

 

 

 

 

 

 

 

      

python基礎23 -----進程和線程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.