進程和線程的區別

一、定義

        進程:具有一定獨立功能的程序關於某個數據集合上的一次運行的活動,進程是系統進行資源分配和調度的一個獨立單位。

        線程:進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的獨立運行的基本單位,線程自己不用於系統資源,只擁有一點在運行中必不可少的資源(如程序計算機,一組寄存器和棧) 但是它與同屬於一個進程的其他的線程共享進程所擁有的全部資源。

二、進程的特點

        獨立性:進程是系統中獨立存在的實體,它用於自己獨立的資源,每個進程都有自己對的地址空間,在沒有運行進行本身的情況下不可訪問其內的資源 。 

        動態性:程序是靜態的,進程是動態的,程序只是一個靜態的指令集合,而進程是一個在系統中運行的指令結合。

        併發性:進程之前,交替出現。

三、兩者之間的聯繫

        一個程序至少存在一個進程,一個進程至少存在一個線程。

        一個進程可以創建和撤銷另一個線程,同一個進程中的多個線程是併發執行的。

        線程的劃分單位小於進程,使得多線程程序的併發高。

四、進程和線程的區別

        1、進程在執行過程中擁有獨立的內存單元,而多個線程共享內存單元,從而提高程序的運行效率。

        2、每個獨立的線程都有一個程序運行的入口、順序執行序列和程序的出口,但是線程不能夠單獨執行,必須運行在應用程序中,由應用程序中提供的多個線程來控制。

        3、進程有獨立的地址空間,一個進程崩潰後,不會對其他進程造成影響,但是線程只是一個進程中的不同執行路徑。

        4、邏輯上講多線程的意義在於一個應用程序中,有多個執行部分可以同時執行,但操作系統並沒有講多個線程看做多個獨立應用,來實現進程的調度和管理以及資源分配,這就是進程和現場的重要區別。

五、進程和線程的優缺點

        線程執行開銷比較小,但不利於資源的管理和保護;而進程正好相反。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章