程式與執行緒的區別
執行緒具有許多傳統程式所具有的特徵,故又稱為輕型程式(Light—Weight Process)或程式元;而把傳統的程式稱為重型程式(Heavy—Weight Process),它相當於只有一個執行緒的任務。在引入了執行緒的作業系統中,通常一個程式都有若干個執行緒,至少包含一個執行緒。
根本區別:程式是作業系統資源分配的基本單位,而執行緒是處理器任務排程和執行的基本單位
資源開銷:每個程式都有獨立的程式碼和資料空間(程式上下文),程式之間的切換會有較大的開銷;執行緒可以看做輕量級的程式,同一類執行緒共享程式碼和資料空間,每個執行緒都有自己獨立的執行棧和程式計數器(PC),執行緒之間切換的開銷小。
包含關係:如果一個程式內有多個執行緒,則執行過程不是一條線的,而是多條線(執行緒)共同完成的;執行緒是程式的一部分,所以執行緒也被稱為輕權程式或者輕量級程式。
記憶體分配:同一程式的執行緒共享本程式的地址空間和資源,而程式之間的地址空間和資源是相互獨立的
影響關係:一個程式崩潰後,在保護模式下不會對其他程式產生影響,但是一個執行緒崩潰整個程式都死掉。所以多程式要比多執行緒健壯。
執行過程:每個獨立的程式有程式執行的入口、順序執行序列和程式出口。但是執行緒不能獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制,兩者均可併發執行
相關文章
- 程式與執行緒區別執行緒
- Linux程式與執行緒的區別Linux執行緒
- Linux執行緒與程式的區別Linux執行緒
- Linux中程式與程式、執行緒的區別!Linux執行緒
- 轉載_Linux程式與執行緒的區別Linux執行緒
- 程式和執行緒的區別與聯絡執行緒
- Linux中程式與執行緒的概念以及區別Linux執行緒
- 【面試】執行緒程式區別面試執行緒
- 「Learning」區別執行緒和程式執行緒
- 執行緒 並行 與 併發 的區別執行緒並行
- 程式、執行緒、纖程之間的區別?執行緒
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- 3分鐘搞清楚程式與執行緒的區別執行緒
- Java多執行緒-鎖的區別與使用Java執行緒
- java架構-執行緒和程式的區別Java架構執行緒
- 程序和執行緒的區別執行緒
- 執行緒和程序的區別執行緒
- 執行緒、執行緒與程式、ULT與KLT執行緒
- Linux中程式和執行緒的區別與聯絡,建議收藏!Linux執行緒
- php中的執行緒、程式和併發區別PHP執行緒
- 作業系統-執行緒和程式的區別作業系統執行緒
- 作業系統_程式和執行緒的區別作業系統執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- Java執行緒池newCachedThreadPool()與newFixedThreadPool()區別 | BaeldungJava執行緒thread
- Java程式和執行緒關係及區別Java執行緒
- Java 執行緒中斷(interrupt)與阻塞 (park)的區別Java執行緒
- 程式與執行緒執行緒
- 執行緒與程式執行緒
- 程序、執行緒、協程的區別執行緒
- 一篇讓你明白程式與執行緒之間的區別與聯絡執行緒
- Android程式框架:執行緒與執行緒池Android框架執行緒
- 程式、執行緒和協程之間的區別和聯絡執行緒
- Java 執行緒和作業系統的執行緒有啥區別?Java執行緒作業系統
- 程式與執行緒的產生執行緒
- PHP 的多程式與執行緒PHP執行緒
- 程式和執行緒有什麼區別?(Process and Threads)程式之間和執行緒之間是如何通訊的?執行緒thread
- 對程式、執行緒和協程的理解以及它們的區別執行緒
- 協程、執行緒與程式執行緒