進(jìn)程(process):當(dāng)你的程序一旦被載入到內(nèi)存中執(zhí)行,那么你的這段程序就是一個(gè)進(jìn)程。一個(gè)或多個(gè)進(jìn)程組成系統(tǒng)當(dāng)中運(yùn)行的應(yīng)用程序,如瀏覽器應(yīng)用。另系統(tǒng)也會(huì)為應(yīng)用的每一個(gè)進(jìn)程分配獨(dú)立的CPU、內(nèi)存等資源。
任務(wù)欄鼠標(biāo)右擊,選中菜單中的“任務(wù)管理器”,然后打開,選中進(jìn)程選項(xiàng)。此時(shí)映入你眼簾的便是系統(tǒng)中的后臺(tái)進(jìn)程列表。沒錯(cuò),這里就是你查看進(jìn)程的地方,而且你還可以看到每個(gè)進(jìn)程的內(nèi)存資源信息以及cpu占有率等。如圖(任務(wù)管理器):

由上圖你應(yīng)該也已經(jīng)察覺到了,進(jìn)程是系統(tǒng)分配資源的最小單位。
線程(thread):進(jìn)程中執(zhí)行的每一個(gè)任務(wù)指的就是線程,系統(tǒng)不會(huì)為其分配內(nèi)存資源,各個(gè)線程共享進(jìn)程擁有的內(nèi)存資源。
進(jìn)程與線程的關(guān)系:
1、內(nèi)存對(duì)資源分配的最小單位是進(jìn)程,而進(jìn)程執(zhí)行的最小單位是線程。
2、一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程。
3、線程是不能夠脫離進(jìn)程而獨(dú)立運(yùn)行的。
4、當(dāng)你的進(jìn)程運(yùn)行時(shí)只產(chǎn)生一個(gè)線程,被稱為單線程,否則被稱為多線程。
5、單線程與多線程都是指的在同一進(jìn)程當(dāng)中的單或多。
6、線程越多意味著你在一個(gè)進(jìn)程中同時(shí)執(zhí)行的任務(wù)也就越多。
如果對(duì)進(jìn)程與線程還不了解,那我再給大家打一個(gè)比方:
1、假如進(jìn)程為一家公司,那么線程指的是為公司服務(wù)的員工。
2、公司擁有自己獨(dú)立的辦公空間,員工共享公司的辦公空間。
3、一家公司至少有一名員工,而員工也必須有一家自己所屬的公司。
4、一位員工需要一件件的去完成工作,多位員工可以協(xié)調(diào)完成工作。
再來歸納下概念:
1、公司:進(jìn)程
2、員工:線程
3、公司有一個(gè)員工:單線程
4、公司有多名員工:多線程
5、一位員工需要獨(dú)立完成工作:單線程需要按照程序的順序依次執(zhí)行,也就是說只有前面的處理好,后面的才會(huì)得到執(zhí)行。
6、多位員工協(xié)調(diào)完成工作:多個(gè)線程在進(jìn)程中協(xié)作完成任務(wù),從而可以最大程度的使用內(nèi)存資源。
7、擁有獨(dú)立辦公空間:進(jìn)程之間獨(dú)立擁有系統(tǒng)所分配的內(nèi)存資源
8、員工共享公司辦公空間:線程沒有自己的內(nèi)存資源,多個(gè)線程共享進(jìn)程的內(nèi)存資源