iOS-OC-線程與進程


線程是指進程內的一個執行單元,也是進程內可調度實體。

 

與進程的區別:

1.地址空間:進程內的一個執行單元。進程至少有一個線程;它們共享進程的地址空間;而進程有自己獨立的空間。

2.資源擁有:進程是資源分配和擁有的單位,同一個進程內的線程共享進程資源。

3.線程是處理器調度的基本單位,但是進程不是。

4.二者均可並發執行

 

進程和線程的區別:

 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程。線程的划分尺度小於進程,使得多線程程序的並發性高。另外,進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。線程在執行過程中與進程還是有區別的,每個獨立的線程有一個程序運行入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存應用程序中,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看作是多個獨立的應用,來實現進程的調度和管理以及資源分配。這就進程和線程的重要區別。

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

線程是進程的一個實體,是CPU調度和分派的基本單位,它使比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他線程共享進程所擁有的全部資源,一個線程可以創建和撤銷另一個線程;統一進程中的多個線程之間可以並發執行。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM