小議進程與線程

進程與線程

一、定義:

進程:具有一定獨立功能的,程序關於某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。
線程:程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位,有時被稱爲輕量級進程(Lightweight Process,LWP)。

二、聯繫:

1、隸屬關係:一個進程有且至少含有一個線程。一個線程只能屬於一個進程。線程是進程的一個執行單元,是進程內的可調度實體。線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
2、資源關係:線程在進程內部共享地址空間、打開的文件描述符等。線程也有其自己的私有數據。線程執行開銷小,但不利於資源的管理和保護;而進程則相反。
eg:線程的私有數據:唯一的線程號(thread ID)、寄存器、堆棧、信號掩碼、優先級、私有的存儲空間。
3、執行方式:二者均可併發執行
併發執行:併發執行只是宏觀上的。在操作系統的管理下,所有正在運行的進程輪流使用CPU,每個進程允許佔用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流爲多個進程服務,就好象所有的進程都在不間斷地運行一樣。微觀上 一個cpu 在同一時間一次還是隻能執行一個進程。

三、區別:

1、定義: 線程是 處理器 調度的基本單位,進程是 系統 進行資源分配和調度的一個獨立單位。
2、應用:多線程的意義子啊與一個應用程序中,有多個執行部分可以同時執行。
3、創建花銷:創建新的進程要花費系統的資源,而創建一個進程則共享進程的地址空間,因而創建一個新的線程所花費的更小一些。
4、系統調度:因爲進程的獨立地址內存的特性,線程間的切換速度遠大於進程。

總而言之,線程相對於進程有以下的有點:節約資源,切換速度塊、線程間的通信更加方便和省時,提高響應程序的速度;多線程還可提高處理器的效率,改善程序的結構等。

四、進程與線程的屬性比較:

1、進程狀態分爲五個基本狀態:運行狀態 (runnable) 、可中斷等待狀態(sleeping)、不可中斷等待狀態(uninterruptible sleep)、僵死狀態(zombile)、停止狀態(traced or stopped)。
線程的狀態大致爲三種:就緒(ready)、執行(running)、阻塞(block)

發佈了36 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章