1. 程式人生 > >程序與執行緒的關係及區別

程序與執行緒的關係及區別

1、定義

  程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位。吐舌頭

  執行緒是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可以與同屬一個程序的其他執行緒共享所擁有的全部資源。

2、關係

  一個執行緒可以建立和撤銷另一個執行緒,同一個程序中的多個執行緒之間可以併發執行。

  相對程序而言,執行緒是一個更加接近於執行體的概念,它可以與同進程中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的執行序列。

3、區別

程序和執行緒的主要差別在與他們是不同的作業系統資源管理方式。程序有獨立的地址空間,一個程序崩潰後,在保護模式下不會對其他程序產生影響,而執行緒只是一個程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但在程序切換時,耗費資源較大,效率就要差一些。但對於一些要求同事進行並且又要共享某些變數的併發操作,只能用執行緒,不能用程序。

1)、簡而言之,一個程式至少要有一個程序,一個程序至少要有一個執行緒。

2)、 執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。

3)、另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大的提高了程式的執行效率。

4)、 執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有一個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

5)、從邏輯的角度來看,多執行緒的意義在於一個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。

4、優缺點

  執行緒和程序在使用上各有優缺點:執行緒執行開銷小,但不利於資源的管理和保護;而程序正好相反。同時,執行緒適合於在smp機器上執行,而程序可以跨機器遷移。偷笑

相關推薦

程序執行關係區別

1.定義 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動;程序是系統進行資源分配和排程的一個獨立單位。 執行緒是程序的一個實體,是CPU排程和分派的基本單位;它是比程序更小的能獨立執行的基本單位;同屬一個程序的不同執行緒之間共享程序所擁有的全部資源。 一個

程序執行的簡單區別

我自己理解的程序與執行緒的區別: 1.子程序之間相對獨立,除了彼此間的通訊,幾乎不會影響到對方, 就像每個人在自己單獨的房間裡辦公一樣。 2。子執行緒之間的交集比較大。 相對程序而言,執行緒是一個更加接近於執行體的概念, 它可以與同進程中的其他執行緒共享資料,但擁有自己的棧空間,擁有獨立的

程序執行之間的區別

我們在討論程序與執行緒的區別之前,首先我們要清楚程序與執行緒的概念。  什麼是程序? 程序是併發執行程式在執行過程中資源分配和管理的基本單位(資源分配的最小單位),是指令+資料+資源的一個集合。程序可以理解為程式的一次例項化,應用程式一旦執行,就是一個程序。每個程序都有自己獨立的地

【Linux程序排程】程序執行的本質區別

簡而言之,執行緒是程序的一部分,程序是程式的一部分。 異同: 1、程序是資源分配的基本單位,而執行緒是排程的基本單位; 2、程序與程序之間是獨立的,一個程序的異常終止不會影響其它程序,而執行緒與執行

程序執行關係區別

1、定義   程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位。   執行緒是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可

程序間,執行間的通訊方式程序執行區別

近日想總結下程序間,執行緒間的通訊方式,在網上搜索了下,感覺寫的很好,照搬過來,當做加深記憶。 幾種程序間的通訊方式 (1) 管道(pipe):管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有血緣關係的程序間使用。程序的血緣關係通常指父子程序關係。 (2)有名管道(named p

程序執行的主要區別程序程式的主要區別

1.程序和執行緒的主要區別 根本區別:程序是作業系統資源分配的基本單位,而執行緒是任務排程和執行的基本單位 在開銷方面:每個程序都有獨立的程式碼和資料空間(程式上下文),程式之間的切換會有較大的開銷;執行緒可以看做輕量級的程序,同一類執行緒共享程式碼和資料空間,每個執行緒

程序執行關係區別

程序,是併發執行的程式在執行過程中分配和管理資源的基本單位,是一個動態概念,竟爭計算機系統資源的基本單位。每一個程序都有一個自己的地址空間,即程序空間或(虛空間)。程序空間的大小 只與處理機的位數有關,一個 16 位長處理機的程序空間大小為 216 ,而 32 位處理機

程序執行理解和關係

程序 執行緒的含義 程序就是一個程式在一個數據集上的一次動態執行過程。 程序一般由程式、資料集、程序控制塊三部分組成。我們編寫的程式用來描述程序要完成哪些功能以及如何完成;資料集則是程式在執行過程中所需要使用的資源;程序控制塊用來記錄程序的外部特徵,描述程序的執行變化過程,系統可以利用它

程序執行之間的關係

程序和執行緒之間的關係 轉載來自:https://www.cnblogs.com/losing-1216/p/5083097.html 程序概念   程序是表示資源分配的基本單位,又是排程執行的基本單位。例如,使用者執行自己的程式,系統就建立一個程序,併為它分配資源,包括各種表格、

Linux程序執行區別 詳細總結

首先,簡要了解一下程序和執行緒。對於作業系統而言,程序是核心之核心,整個現代作業系統的根本,就是以程序為單位在執行任務。系統的管理架構也是基於程序層面的。在按下電源鍵之後,計算機就開始了複雜的啟動過程,此處有一個經典問題:當按下電源鍵之後,計算機如何把自己由靜止啟動起來的?本

作業系統——程序執行區別以及如何選擇

1.定義 在對執行緒和程序進行比較之前,我們先看一下它們的定義。 程序:是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位,是資源分配的最小單位。 執行緒:是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的

程序執行區別聯絡、程序執行的通訊方式.md

一、為什麼引入程序? 程序是為了提高CPU的執行效率,減少因為程式等待帶來的CPU空轉以及其他計算機軟硬體資源的浪費而提出來的。 二、為什麼引入執行緒? 為了減少程序切換和建立的開銷,提高執行效率和節省

程序執行區別和聯絡以及優缺點

什麼是執行緒? -在一個程式裡的一個執行路線就叫做執行緒。更準確的定義是:執行緒是“一個程序內部的控制序列”。 -一切程序至少都有一個執行執行緒 -執行緒也被叫做輕量級程序 什麼是程序? -程序是程式的一個執行的例項。 -程序是正在執行的程式。 -程序是能分配處理器並由處

Java多執行的實現(程序執行的概念、Java繼承Thread類實現多執行、Java實現Runnable介面實現多執行、ThreadRunnable的區別、實現Callable介面實現多執行

1 程序與執行緒 1.1 程序與執行緒的概念 什麼是程序?   程序: 作業系統中一個程式的執行週期。(比如我們想要在電腦上登入QQ,從雙擊qq按鈕---->關閉qq這個過程就是一個程序)   多程序: 同一時刻跑多個程式。   在DOS(磁碟作業系統時

001.多執行-程序執行區別

什麼是程序?顧名思義,就是進行中的程式,也就是執行中的程式。我們開啟電腦的工作管理員可以看到: 此時,執行中的360瀏覽器,Google瀏覽器等都是獨立的一個程序,他們擁有相應的系統資源,比如:CPU

執行的那些事兒(2)-- 程序執行區別聯絡

  在進行多執行緒程式設計之前我們先解決一個基本問題:什麼是執行緒、什麼是程序,他們之間有什麼區別與聯絡。 (1)程序:執行環境                   執行緒:執行單位         用書面一點的知說,程序是一個計算機中程式執行的一個實體,執行緒是作業系

程序執行區別

定義: 一、程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統進行資源分配和排程的一個獨立單位。 二、執行緒是程序的一個實體,是CPU排程和分派的基本單位,他是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少

CIL鎖,GIL執行池的區別,程序池和執行池,同步非同步

一.GIL鎖 什麼是GIL? 全域性直譯器鎖,是加在直譯器上的互斥鎖 GC是python自帶的記憶體管理機制,GC的工作原理:python中的記憶體管理使用的是應用計數,每個數會被加上一個整型的計數器,表示這個資料被引用的次數,當這個整數變為0時則表示該資料已經沒有人使用,成為了垃圾資料,當記憶體佔用達到

Java 程序執行 執行實現(Thread、Runnable、Callable)

程序與執行緒的概念 程序: 作業系統中一個程式的執行週期稱為一個程序。(是程式的一次動態執行,它對應著從程式碼載入,執行至執行完畢的一個完整的過程,是一個動態的實體) windows是一個多程序的作業系統。 執行緒: :一個程式同時執行多個任務。通常,每一個任務就稱為一個執行緒。與程序相