1歼跟、進程
進程是程序的一次執(zhí)行過程轩性,是一個動態(tài)概念声登,是程序在執(zhí)行過程中分配和管理資源的基本單位,每一個進程都有一個自己的地址空間揣苏,至少有5種基本狀態(tài):初始態(tài)悯嗓,執(zhí)行態(tài),等待狀態(tài)卸察,就緒狀態(tài)脯厨,終止狀態(tài)。
2坑质、線程
線程是CPU調(diào)度和分派的基本單位合武,它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。
3涡扼、聯(lián)系
線程是進程的一部分稼跳,一個線程只能屬于一個進程,而一個進程可以有多個線程吃沪,但至少有一個線程汤善。
4、區(qū)別
a、根本區(qū)別:進程是操作系統(tǒng)資源分配的基本單位红淡,而線程是任務(wù)調(diào)度和執(zhí)行的基本單位不狮。
b、在開銷方面:每個進程都有獨立的代碼和數(shù)據(jù)空間(程序上下文)锉屈,程序之間的切換會有較大的開銷荤傲;線程可看做輕量級的進程,同一類線程共享代碼和數(shù)據(jù)空間颈渊,每個線程都有自己獨立的運行棧和程序計數(shù)器(PC)遂黍,線程之間切換的開銷小。
c俊嗽、所處環(huán)境:在操作系統(tǒng)中能同時運行多個進程(程序)雾家;而在同一個進程(程序)中有多個線程同時執(zhí)行(通過CPU調(diào)度,在每個時間片中只有一個線程執(zhí)行)绍豁。
d芯咧、內(nèi)存分配方面:系統(tǒng)在運行的時候會為每一個進程分配不同的內(nèi)存空間;而對線程而言竹揍,除了CPU外敬飒,系統(tǒng)不會為線程分配內(nèi)存(線程所使用的資源來自其所屬進程的資源),線程組之間只能共享資源芬位。
e无拗、包含關(guān)系:沒有線程的進程可以看做是單線程的,如果一個進程內(nèi)有多個線程昧碉,則執(zhí)行過程不是一條線的英染,而是多條線(線程)共同完成的;線程是進程的一部分被饿,所以線程也被稱為輕權(quán)進程或者輕量級進程四康。
最后,以上答案參考自: