標籤:個數 運行 提高 同步 之間 上下 子集 執行 補充
一、進程
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 -----進程和線程