執行緒的概念

2022-07-04 09:57:09 字數 4047 閱讀 1608

程序是乙個具有一定獨立功能的程式在乙個資料集上的一次動態執行的過程,是作業系統進行資源分配和排程的乙個獨立單位,是應用程式執行的載體。

程序一般由程式、資料集合和程序控制塊三部分組成,程式用於描述程序要完成的功能,是控制程序執行的指令集;資料集合是程式在執行時所需要的資料和工作區;程式控制塊包含程序的描述資訊和控制資訊,唯一標識乙個程序。

程序的特徵

動態性:程序是程式的一次執行過程,是臨時的,有生命期的,是動態產生,動態消亡的;

併發性:乙個程序可以和其它程序併發執行(多核cpu);

獨立性:各個程序之間是獨立的,程序是系統進行資源分配和排程的乙個獨立單位,;

結構特點:程序由程式、資料和程序控制塊三部分組成

程序的三種基本狀態

(1)就緒(ready)

當乙個程序已經準備就緒,一旦得到cpu,就可立即執行,這時程序所處的狀態稱為就緒狀態。系統中有乙個就緒程序佇列,處於就緒狀態程序按某種排程策略存在於該佇列中。

(2)執行(running)

當程序獲取到cpu的時間片,開始執行**,處於執行狀態。時間片用完,回到就緒狀態。

單核cpu,乙個時刻最多只有乙個程序處於執行狀態;多核cpu,乙個時刻最多可以有多個(cpu數量)程序處於執行狀態。

(3)阻塞(blocked )

乙個程序正等待著某一事件發生(如等待輸入輸出操作的完成)而暫時停止執行

處於等待狀態的程序不具備執行的條件,即使給它時間片,也無法執行。

執行到阻塞:等待某事件的發生、完成(如等待i/o完成)

阻塞到就緒:事件已經發生、完成(如i/o完成)

執行到就緒:時間片用完或出現更高優先順序程序,當前程序被迫讓出cpu。

就緒到執行:排程(分派)程式從就緒程序佇列中選擇乙個程序來使用cpu,獲取到cpu的時間片。

這三種是程序最基本的狀態,實際並不止這三種狀態。

程序與程式的聯絡與區別

1、程式是指令的有序集合,其本身沒有任何執行的含義,是乙個靜態的概念。而程序是程式在處理機上的一次執行過程,它是乙個動態的概念。

2、程式可以作為一種軟體資料長期存在,而程序是有一定生命期的。程式是永久的,程序是暫時的。

3、程序和程式組成不同:程序是由程式、資料和程序控制塊三部分組成

4、 程序與程式的對應關係:通過多次執行,乙個程式可對應多個程序;通過呼叫關係,乙個程序可包括多個程式。

執行緒是程式執行的最小單元,是處理器排程和分派的基本單位。乙個程序可以有乙個或多個執行緒(至少有乙個),各個執行緒之間共享所在程序的記憶體空間。

乙個標準的執行緒由執行緒id,當前指令指標pc,暫存器和堆疊組成。而程序由記憶體空間(**,資料,程序空間,開啟的檔案)和乙個或多個執行緒組成。

程序與執行緒的區別

1. 執行緒是程式執行的最小單位,而程序是作業系統分配資源的最小單位

2. 乙個程序由乙個或多個執行緒組成,執行緒是乙個程序中**的不同執行路線

3. 程序之間相互獨立,但同一程序下的各個執行緒之間共享程式的記憶體空間(包括**段,資料集,堆等)及一些程序級的資源(如開啟檔案和訊號等),乙個程序內的執行緒對其他程序不可見

4. 排程和切換:執行緒上下文切換比程序上下文切換要快得多

執行緒和程序都可用於實現併發,執行緒是一種比程序更小的程式執行單位。

為何不使用多程序而是使用多執行緒?

1、執行緒廉價,啟動、退出比較快,需要的系統資源比程序少很多,且可以共享程式的記憶體空間(資源)

2、多重程序的執行不可預期,且測試困難

程序是乙個具有一定獨立功能的程式在乙個資料集上的一次動態執行的過程,是作業系統進行資源分配和排程的乙個獨立單位,是應用程式執行的載體。

程序一般由程式、資料集合和程序控制塊三部分組成,程式用於描述程序要完成的功能,是控制程序執行的指令集;資料集合是程式在執行時所需要的資料和工作區;程式控制塊包含程序的描述資訊和控制資訊,唯一標識乙個程序。

程序的特徵

動態性:程序是程式的一次執行過程,是臨時的,有生命期的,是動態產生,動態消亡的;

併發性:乙個程序可以和其它程序併發執行(多核cpu);

獨立性:各個程序之間是獨立的,程序是系統進行資源分配和排程的乙個獨立單位,;

結構特點:程序由程式、資料和程序控制塊三部分組成

程序的三種基本狀態

(1)就緒(ready)

當乙個程序已經準備就緒,一旦得到cpu,就可立即執行,這時程序所處的狀態稱為就緒狀態。系統中有乙個就緒程序佇列,處於就緒狀態程序按某種排程策略存在於該佇列中。

(2)執行(running)

當程序獲取到cpu的時間片,開始執行**,處於執行狀態。時間片用完,回到就緒狀態。

單核cpu,乙個時刻最多只有乙個程序處於執行狀態;多核cpu,乙個時刻最多可以有多個(cpu數量)程序處於執行狀態。

(3)阻塞(blocked )

乙個程序正等待著某一事件發生(如等待輸入輸出操作的完成)而暫時停止執行

處於等待狀態的程序不具備執行的條件,即使給它時間片,也無法執行。

執行到阻塞:等待某事件的發生、完成(如等待i/o完成)

阻塞到就緒:事件已經發生、完成(如i/o完成)

執行到就緒:時間片用完或出現更高優先順序程序,當前程序被迫讓出cpu。

就緒到執行:排程(分派)程式從就緒程序佇列中選擇乙個程序來使用cpu,獲取到cpu的時間片。

這三種是程序最基本的狀態,實際並不止這三種狀態。

程序與程式的聯絡與區別

1、程式是指令的有序集合,其本身沒有任何執行的含義,是乙個靜態的概念。而程序是程式在處理機上的一次執行過程,它是乙個動態的概念。

2、程式可以作為一種軟體資料長期存在,而程序是有一定生命期的。程式是永久的,程序是暫時的。

3、程序和程式組成不同:程序是由程式、資料和程序控制塊三部分組成

4、 程序與程式的對應關係:通過多次執行,乙個程式可對應多個程序;通過呼叫關係,乙個程序可包括多個程式。

執行緒是程式執行的最小單元,是處理器排程和分派的基本單位。乙個程序可以有乙個或多個執行緒(至少有乙個),各個執行緒之間共享所在程序的記憶體空間。

乙個標準的執行緒由執行緒id,當前指令指標pc,暫存器和堆疊組成。而程序由記憶體空間(**,資料,程序空間,開啟的檔案)和乙個或多個執行緒組成。

程序與執行緒的區別

1. 執行緒是程式執行的最小單位,而程序是作業系統分配資源的最小單位

2. 乙個程序由乙個或多個執行緒組成,執行緒是乙個程序中**的不同執行路線

3. 程序之間相互獨立,但同一程序下的各個執行緒之間共享程式的記憶體空間(包括**段,資料集,堆等)及一些程序級的資源(如開啟檔案和訊號等),乙個程序內的執行緒對其他程序不可見

4. 排程和切換:執行緒上下文切換比程序上下文切換要快得多

執行緒和程序都可用於實現併發,執行緒是一種比程序更小的程式執行單位。

為何不使用多程序而是使用多執行緒?

1、執行緒廉價,啟動、退出比較快,需要的系統資源比程序少很多,且可以共享程式的記憶體空間(資源)

2、多重程序的執行不可預期,且測試困難

執行緒的概念

多工 作業系統執行多個程序,cpu有分時機制,讓所有的都能迴圈獲得自己的cpu時間片,但是輪轉快,所以使得程式像是同時運轉 執行緒 乙個程序內部單一的乙個順序控制流,是乙個程序同時執行多個執行緒 為了建立執行緒可以從thread中進行繼承,這個類裡包含建立和執行的所有執行緒的東西,thread最重要...

多執行緒的概念

多執行緒的好處在於可以提高cpu的利用率 任何乙個程式設計師都不希望自己的程式很多時候沒事可幹,在多執行緒程式中 乙個執行緒必須等待的時候,cpu可以執行其它的執行緒而不是等待,這樣就大大提高了程式的效率。然而我們也必須認識到執行緒本身可能影響系統效能的不利方面,以正確使用執行緒 執行緒也是程式,所...

執行緒安全的概念

執行緒安全的概念 執行緒安全 當多個執行緒訪問某乙個類 物件或方法 時,這個類始終都能表現出正確的行為,那麼這個類 物件或方法 就是執行緒安全的 package com.louis.執行緒 public class mythread extends thread public static void...