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

程序與執行緒的關係

程序和執行緒沒有嚴格的定義。這裡僅僅給出彼此的相同和不同點。

不同點:

程序是作業系統資源分配的最小單位,在沒有執行緒的情況下也是最小的排程單位。

執行緒是任務排程的最小單位,可以作為一個獨立的單元執行。

程序至少包含一個執行緒,執行緒共享所屬程序的資源。所以在一個程序中有多個程序時需要進行互斥,防止發生共享資源的衝突。

執行緒自己不含有資源,但它可以使用所屬程序的資源。

程序切換時由於需要資源的切換,導致系統開銷大增。而執行緒只需要儲存相關的現場資訊即可切換,減少系統開銷,提高效率。

程序建立具有父子關係,執行緒建立的執行緒僅與所屬程序有所關係,與建立的執行緒是獨立的。

相同點:

程序和執行緒的引入都是為了程式執行的併發性。

他們都是具有生命週期的。

程序可建立程序,執行緒裡也能建立執行緒。程序裡能建立執行緒,執行緒也能建立程序。

相關推薦

程序執行理解和關係

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

程序執行之間的關係

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

程序執行關係區別

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

程序執行關係

程序和執行緒沒有嚴格的定義。這裡僅僅給出彼此的相同和不同點。不同點:程序是作業系統資源分配的最小單位,在沒有執行緒的情況下也是最小的排程單位。執行緒是任務排程的最小單位,可以作為一個獨立的單元執行。程序至少包含一個執行緒,執行緒共享所屬程序的資源。所以在一個程序中有多個程序時

程序執行關係及區別

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

Linux 下程序執行關係

一.基礎知識:執行緒和程序 按照教科書上的定義,程序是資源管理的最小單位,執行緒是程式執行的最小單位。在作業系統設計上,從程序演化出執行緒,最主要的目的就是更好的支援SMP以及減小(程序/執行緒)上下文切換開銷。 無論按照怎樣的分法,一個程序至少需要一個執行緒作為它的指令執行體,程序管理著資源(比如cpu、記

12 認識程序執行 (進階)

認識程序與執行緒(python)   一段時間沒有更新部落格了,今天和大家講講關於 python 程序和執行緒的知識點。(個人心得,多多指教!) 階段一:併發與並行的深入理解 ​ 並行一定是併發,但併發不一定是並行。 ​ 並行是相對的,並行是絕對的。 1、關於並行與併發的問題引入: 問題一: 計算

【Linux系統學習】程序執行

程序執行新程式 程序等待 wait()函式 程序執行新程式 fork()/exec()組合是典型的Linux

程序執行的一個簡單解釋 --- 轉載

程序與執行緒的一個簡單解釋       ---  轉載自 阮一峰的部落格   程序(process)和執行緒(thread)是作業系統的基本概念,但是它們比較抽象,不容易掌握。 最近,我讀到一篇材料,發現有一個很好的

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

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

python程序執行小結

傳統方式是呼叫2個方法執行1個任務,方法按順序依次執行# -*- coding:utf-8 -*-import threadingimport timedef run(n): print('task',n) time.sleep(3)if __name__ == '__main__': ru

程序執行的理解

1.程序:也就是一個應用程式 2.執行緒:一個應用程式由多個執行緒組成,執行緒是程式執行的最小單元 3.多執行緒:同步完成多項任務   java中如何實現多執行緒: >第一種方法:   1.寫一個類繼承Thread,重寫run方法;run方法呼叫自己的執行緒   2.在呼叫方法之

程序執行(直接copy)

轉載自:https://www.cnblogs.com/zhehan54/p/6130030.html 在理解程序和執行緒概念之前首選要對併發有一定的感性認識,如果伺服器同一時間內只能服務於一個客戶端,其他客戶端都再那裡傻等的話,可見其效能的低下估計會被客戶罵出翔來,因此併發程式設計應運而生,併

面試必問:程序執行的異同以及程序間通訊方式

秋招面試必問的題目,感覺今年被問了差不多10次了。 1.程序與執行緒 程序:具有獨立功能的程式關於某個資料集合上的一次執行活動。 執行緒:程序的一個實體。 比喻:一列火車是一個程序,火車的每一節車廂是執行緒。 2.程序與執行緒的聯絡 ①一個執行緒只能屬於一個程序,一個程序

程序執行的簡單區別

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

程序執行(三)——執行的概念實現

一 什麼是執行緒? 程序中的一條執行流程。 有了執行緒,程序發生了一系列的變化。首先是(1)資源管理,包括地址空間(程式碼段,資料段):程序就是由來管理資源的:地址空間,開啟的檔案,訪問的網路。(2)執行緒把程序的另一部分功能給拆出來了。 程序的執行功能,程序的

程序執行(二)——程序的管理、建立銷燬

接上回: 我們介紹了程序的由來,程序的概念,程序的組成部分和它在執行過程中的狀態。我們說程序最重要的部分是程序控制塊PCB,作業系統通過PCB來管理各個程序有條不紊的在我們的機器中執行的。那麼作業系統是怎麼樣管理這麼多程序的呢?程序是怎麼樣建立、又是怎麼樣銷燬的呢?  

程序執行(一)——程序

序言: 我們知道多執行緒是現代作業系統中一個很重要的組成部分。它經常在面試過程中或者在實際運用過程中都會碰到的一個比較難的一個問題,所以這篇文章所屬的一個系列,將淺顯的記錄下博主的多執行緒學習的一個過程。 首先呢,說起執行緒的起源,我們不得不提就是程序的概念。然而一開始也並不是直接就有

執行第一課——程序執行

  這節課開始我們進入java的執行緒部分。     首先了解幾個概念: 程式、程序、執行緒。   程式: 就是我們寫的程式碼,是靜態的。 程序: 程式執行的過程,或者說是cpu排程各個程式的過程 執行緒: 一程序為達到併發操

程序執行(三)——程序/執行間通訊

在使用者空間中建立執行緒   用庫函式實現執行緒(《現代作業系統》 P61) #include<pthread.h> #include<stdio.h> #include<stdlib.h> #define NUMBER_OF_THREAD