程序、进程、线程之间的区别
?????1.?? .net的公共語言運行時(CLR)能夠區別兩種不同類型的線程:前臺線程和后臺線程。前臺線程與后臺線程的區別:
?????? 應用程序必須運行完所有的前臺線程才可以退出。而對于后臺線程,應用程序則可以不考慮其是否已經運行完畢而直接退出。所有的后臺線程在應用程序退出后都會自動結束。
????? 主線程是一個前臺線程。
??? 2.程序與進程、線程:
??????? 程序:計算機指令的集合。是屬于靜態的,不受操作系統的調度。它以文件的形式存儲在磁盤上。
?????? 進程:運行中的程序。執行計算機指令的集合的過程。是系統進行調度和分配資源的獨立單元。
?????? 一個程序加載到內存,系統就創建了一個進程、執行結束后,該進程也就消亡了。
??????? 線程:輕量級進程,即講一個程序被分解為多個進程共同完成程序的任務,那么被分解的進程就是線程。由操作系統負責調度。擁有獨立的執行控制。
?????? 單線程:如果一個程序只有一個進程就可以處理所有的任務,那么它就是單線程。線程是CPU的分配單位。
????? 進程與線程的區別:線程沒有獨立的存儲空間,而是和所屬進程的其他線程共享一個存儲空間。這使得線程間的通信較簡單。
????? 進程與進程之間的通信:調用的接口。
3.多任務
????? 多任務:系統可以同時運行多個進程。操作系統能夠同時運行幾個線程,這種能力稱為多任務處理。
4.引入線程的好處
????? 1.創建一個新線程花費的時間少。
????? 2.兩個線程的切換時間少。
????? 3.由于同一個進程內的線程共享內存和文件。所以線程之間互相通信必須調用內核。
????? 4.線程能獨立執行,能充分利用和發揮處理機與外圍設備并行工作。
?
?????????????????????
?
轉載于:https://blog.51cto.com/gyy213/674507
總結
以上是生活随笔為你收集整理的程序、进程、线程之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纠结啊
- 下一篇: 泛型与操作符重载杂谈