線程和進(jìn)程的關(guān)系:每個(gè)進(jìn)程都有相應(yīng)的線程,在執(zhí)行程序時(shí),實(shí)際上是執(zhí)行相應(yīng)的一系列線程。進(jìn)程是資源分配的最小單位,線程是程序執(zhí)行的最小單位。
本文操作環(huán)境:windows10系統(tǒng)、thinkpad t480電腦。
(學(xué)習(xí)視頻分享:編程視頻)
詳細(xì)介紹:
根本區(qū)別:進(jìn)程是資源分配最小單位,線程是程序執(zhí)行的最小單位。 計(jì)算機(jī)在執(zhí)行程序時(shí),會(huì)為程序創(chuàng)建相應(yīng)的進(jìn)程,進(jìn)行資源分配時(shí),是以進(jìn)程為單位進(jìn)行相應(yīng)的分配。每個(gè)進(jìn)程都有相應(yīng)的線程,在執(zhí)行程序時(shí),實(shí)際上是執(zhí)行相應(yīng)的一系列線程。
地址空間:進(jìn)程有自己獨(dú)立的地址空間,每啟動(dòng)一個(gè)進(jìn)程,系統(tǒng)都會(huì)為其分配地址空間,建立數(shù)據(jù)表來(lái)維護(hù)代碼段、堆棧段和數(shù)據(jù)段;線程沒(méi)有獨(dú)立的地址空間,同一進(jìn)程的線程共享本進(jìn)程的地址空間。
資源擁有:進(jìn)程之間的資源是獨(dú)立的;同一進(jìn)程內(nèi)的線程共享本進(jìn)程的資源。
執(zhí)行過(guò)程:每個(gè)獨(dú)立的進(jìn)程程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序入口。但是線程不能獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。
線程是處理機(jī)調(diào)度的基本單位,但是進(jìn)程不是。由于程序執(zhí)行的過(guò)程其實(shí)是執(zhí)行具體的線程,那么處理機(jī)處理的也是程序相應(yīng)的線程,所以處理機(jī)調(diào)度的基本單位是線程。
系統(tǒng)開(kāi)銷:進(jìn)程執(zhí)行開(kāi)銷大,線程執(zhí)行開(kāi)銷小。