天天看點

一句話說明線程和程序

一句話說明線程和程式

知識點:

1、一句話說明線程和程序

2、作業系統為什麼需要程序

3、為什麼要引入線程

4、一圖說明線程和程序的關系

一、一句話說明線程和程序

程序:是指⼀個記憶體中運⾏的應⽤程式,比如QQ、微信、浏覽器等;⼀個應⽤程式可以同時運⾏多個程序,比如同時打開兩個QQ、浏覽器。

線程:1個程序(應用程式)可能需要同時執行幾個任務,比如QQ可以同時視訊、傳輸檔案、文字聊天,可以使用一個線程負責處理視訊,一個線程負責傳輸檔案,一個線程負責文字聊天,讓這些任務并發執行。

程序我們可以從任務管理器中檢視到,也可以使用快捷鍵ctrl+alt+del鍵快速調出任務管理器。在程序上點選"結束任務"即可看到該應用程式被關閉掉了。

示範一:程序檢視

一句話說明線程和程式

示範二:一個應用程式同時運作多個程序(同時打開兩個QQ)

一句話說明線程和程式

二、作業系統為什麼需要程序

我們平時使用電腦上網、打遊戲、聽歌、購物,實際上都是運作一個個的程式。

程式,實際上就是一些指令集合,作業系統讓這些指令運作起來,讓你能夠享受這些程式提供的服務。

執行指令的核心部件就是CPU,一個電腦/手機的CPU數量是有限的,生活中通常說是幾核的,核越多,并行處理的程式越多,能大大的提高電腦運作的效率。

如何讓有限的CPU同時執行各種程式呢?

作業系統通過時分共享來實作,時分共享是作業系統共享系統資源最基本的技術之一。

假如作業系統上運作着3個程式,那麼CPU每次運作一個程式,然後在下一個時間點,運作第二個程式,然後很快切到第三個程式。

由于CPU切換得非常快,對于使用者來說,就像3個程式同時運作起來一樣。

一句話說明線程和程式

但是程式切換有一些問題需要解決:

1、程式是否正在運作

2、上一次CPU運作到哪一個指令,切換後需要從上一次中斷處重新運作

3、每個程式都會占用一定的系統資源,例如記憶體,如何保證每個程序的資源安全與獨立性,比如:我正在發送一個檔案,同時我打開檔案進行了内容修改,怎麼辦?

為了讓作業系統輕松明白程式的上述資訊,我們使用程序對程式進行抽象,打開一個應用就在系統中開了一個程序,每個程序都有1個獨立的記憶體空間。

三、為什麼要引入線程

引入線程之後,不僅是程序之間可以并發,程序内的各線程之間也可以并發,進而進一步提升了系統的并發度,使得一個程序内也可以并發處理各種任務(如QQ這個程序可以同時視訊、文字聊天、傳檔案)。

一句話說明線程和程式

四、一圖說明線程和程序的關系

一句話說明線程和程式

​​簡而言之:1個程式運作後至少有1個程序,1個程序中可以包含多個線程​。

另外,還要注意兩個概念并發和并行。

并發:程序和線程都是為了提高CPU的并發能力,

并行:而多個CPU系統中,則這些可以并發執行的程式便可以配置設定到多個處理器上( CPU ),實作多任務并行處理。

繼續閱讀