線程是指進程內的一個執行單元,也是進程內的可調度實體。
與進程的區別:
(1)地址空間:進程內的一個執行單元,進程至少一個線程,他們共享進程的地址空間,而進程有自己獨立的地址空間
(2)資源擁有:進程是資源分配和擁有的單位,同一個進程內的線程共享進程資源
(3)線程是處理器調度的基本單位,但進程不是
(4)二者皆可並發執行
進程和線程都是操作系統的程序運行的基本單元,系統利用該基本單元實現系統對應用的並發性,進程和線程的區別在於:
一個程序至少有一個進程,一個進程至少有一個線程。
線程的划分尺度小於進程,使得多線程程序的並發性高
進程在執行的過程中有獨立的內存單元,而多個線程共享內存,從而極大地提升了程序的運行效率
執行過程區別:每個獨立的縣城都有一個程序運行的入口,順序執行序列和程序的入口,但是線程不能夠獨立執行,但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制
由邏輯角度來看,多線程的意義在於一個應用程序中,有多個執行部分可以同時執行,但操作系統並沒有將多個線程看做多個獨立的應用來實現進程的調度和管理,這就是線程和進程的重要區別。
進程是具有一定獨立功能的程序關於某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。
線程是進程的一個實體,是CPU調度和分派的基本單位,他是比進程更小的能獨立運行的基本單位,線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(寄存器,棧,程序計數器),但是它可與同一個進程的其他線程共享進程所擁有的全部資源
一個線程可以創建和撤消另一個線程,同一個進程中的多線程之間可以並發執行
歡迎大家補充指正。