IT科技

當前位置 /首頁/IT科技 > /列表

進程與線程有何區別

進程與線程的區別?進程與線程的區別

方法

進程:指在系統中能獨立運行並作為資源分配的基本單位,它是由一組機器指令、數據和堆疊等組成的,是一個能獨立運行的活動實體。

進程與線程有何區別

進程一般有三個狀態:就緒狀態、執行狀態和等待狀態【或稱阻塞狀態】;進程只能由父進程建立,系統中所有的進程形成一種進程樹的層次體系;掛起命令可由進程自己和其他進程發出,但是解除掛起命令只能由其他進程發出。

進程與線程有何區別 第2張

由程序段、相關的數據段和PCB三部分構成了進程實體(又稱進程印像),一般,我們把進程實體就簡稱為進程。

進程的特徵:

1.動態性:進程的實質是程序的一次執行過程,進程是動態產生,動態消亡的。

2.併發性:任何進程都可以同其他進程一起併發執行。

3.獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位。

4.異步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進。

進程與線程有何區別 第3張

線程:線程是進程中的一個實體,作為系統調度和分派的基本單位。Linux下的線程看作輕量級進程。

進程與線程有何區別 第4張

線程的性質:

1.線程是進程內的一個相對獨立的可執行的單元。若把進程稱為任務的話,那麼線程則是應用中的一個子任務的執行。

2.由於線程是被調度的基本單元,而進程不是調度單元。所以,每個進程在創建時,至少需要同時為該進程創建一個線程。即進程中至少要有一個或一個以上的線程,否則該進程無法被調度執行。

3.進程是被分給並擁有資源的基本單元。同一進程內的多個線程共享該進程的資源,但線程並不擁有資源,只是使用他們。

4.線程是操作系統中基本調度單元,因此線程中應包含有調度所需要的必要信息,且在生命週期中有狀態的變化。

5.由於共享資源【包括數據和文件】,所以線程間需要通信和同步機制,且需要時線程可以創建其他線程,但線程間不存在父子關係。

進程與線程有何區別 第5張