今天給大家分享一下線程與進程,主要包含以下幾部分內(nèi)容:
- 一句話說明線程和進程
- 操作系統(tǒng)為什么需要進程
- 為什么要引入線程
- 一圖說明線程和進程的關(guān)系
一句話讓你理解進程和線程
進程:是指?個內(nèi)存中運?的應(yīng)?程序,比如QQ、微信、瀏覽器等;?個應(yīng)?程序也可以同時運?多個進程,比如同時打開兩個QQ、瀏覽器。
線程:1個進程(應(yīng)用程序)可能需要同時執(zhí)行幾個任務(wù),比如QQ可以同時視頻、傳輸文件、文字聊天,可以使用一個線程負(fù)責(zé)處理視頻,一個線程負(fù)責(zé)傳輸文件,一個線程負(fù)責(zé)文字聊天,讓這些任務(wù)并發(fā)執(zhí)行。
進程我們可以從任務(wù)管理器中查看到,也可以使用快捷鍵ctrl+alt+del鍵快速調(diào)出任務(wù)管理器。在進程上點擊"結(jié)束任務(wù)"即可看到該應(yīng)用程序被關(guān)閉掉了。
演示一:進程查看
演示二:一個應(yīng)用程序同時運行多個進程(同時打開兩個QQ)
我們平時使用電腦上網(wǎng)、打游戲、聽歌、購物,實際上都是運行一個個的程序。
程序,實際上就是一些命令集合,操作系統(tǒng)讓這些指令運行起來,讓你能夠享受這些程序提供的服務(wù)。
執(zhí)行指令的核心部件就是CPU,生活中通常說是幾核的,核越多,并行處理的程序越多,能大大地提高電腦運行的效率。
但是一個電腦/手機的CPU數(shù)量是有限的,如何讓有限的CPU同時執(zhí)行各種程序呢?
操作系統(tǒng)通過時分共享來實現(xiàn),時分共享是操作系統(tǒng)共享系統(tǒng)資源最基本的技術(shù)之一。
假如操作系統(tǒng)上運行著3個程序,那么CPU每次運行一個程序,然后在下一個時間點,運行第二個程序,然后很快切到第三個程序。
由于CPU切換得非常快,對于用戶來說,就像3個程序同時運行起來一樣。
但是程序切換有一些問題需要解決:
1、程序是否正在運行
2、上一次CPU運行到哪一個指令,切換后需要從上一次中斷處重新運行
3、每個程序都會占用一定的系統(tǒng)資源,例如內(nèi)存,如何保證每個進程的資源安全與獨立性。
為了讓操作系統(tǒng)輕松明白程序的上述信息,我們使用進程對程序進行抽象,打開一個應(yīng)用就在系統(tǒng)中開了一個進程,每個進程都有1個獨立的內(nèi)存空間。
引入線程之后,不僅是進程之間可以并發(fā),進程內(nèi)的各線程之間也可以并發(fā),從而進一步提升了系統(tǒng)的并發(fā)度,使得一個進程內(nèi)也可以并發(fā)處理各種任務(wù)(如QQ這個進程可以同時視頻、文字聊天、傳文件)。
簡而言之:?個程序運?后?少有?個進程,?個進程中可以包含多個線程。
另外,還要注意兩個概念并發(fā)和并行。
并發(fā):進程和線程都是為了提高CPU的并發(fā)能力,
并行:而多個CPU系統(tǒng)中,則這些可以并發(fā)執(zhí)行的程序便可以分配到多個處理器上( CPU ),實現(xiàn)多任務(wù)并行處理。
-
程序
+關(guān)注
關(guān)注
117文章
3787瀏覽量
81038 -
線程
+關(guān)注
關(guān)注
0文章
504瀏覽量
19682 -
進程
+關(guān)注
關(guān)注
0文章
203瀏覽量
13961
發(fā)布評論請先 登錄
相關(guān)推薦
評論