執行緒與程序

2022-07-21 04:24:11 字數 2010 閱讀 2107

程序是系統中正在執行的乙個程式,程式一旦執行就是程序。

程序可以看成程式執行的乙個例項。程序是系統資源分配的獨立實體,每個程序都擁有獨立的位址空間。乙個程序無法訪問另乙個程序的變數和資料結構,如果想讓乙個程序訪問另乙個程序的資源,需要使用程序間通訊,比如管道,檔案,套接字等。

乙個程序可以擁有多個執行緒,每個執行緒使用其所屬程序的棧空間。執行緒與程序的乙個主要區別是,統一程序內的乙個主要區別是,同一程序內的多個執行緒會共享部分狀態,多個執行緒可以讀寫同一塊記憶體(乙個程序無法直接訪問另一程序的記憶體)。同時,每個執行緒還擁有自己的暫存器和棧,其他執行緒可以讀寫這些棧記憶體。

執行緒是程序的乙個實體,是程序的一條執行路徑。

執行緒是程序的乙個特定執行路徑。當乙個執行緒修改了程序的資源,它的兄弟執行緒可以立即看到這種變化。

根本區別:程序是作業系統資源分配的基本單位,而執行緒是處理器任務排程和執行的基本單位

資源開銷:每個程序都有獨立的**和資料空間(程式上下文),程式之間的切換會有較大的開銷;執行緒可以看做輕量級的程序,同一類執行緒共享**和資料空間,每個執行緒都有自己獨立的執行棧和程式計數器(pc),執行緒之間切換的開銷小。

包含關係:如果乙個程序內有多個執行緒,則執行過程不是一條線的,而是多條線(執行緒)共同完成的;執行緒是程序的一部分,所以執行緒也被稱為輕權程序或者輕量級程序。

影響關係:乙個程序崩潰後,在保護模式下不會對其他程序產生影響,但是乙個執行緒崩潰整個程序都死掉。所以多程序要比多執行緒健壯。

執行過程:每個獨立的程序有程式執行的入口、順序執行序列和程式出口。但是執行緒不能獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制,兩者均可併發執行

1.需要頻繁建立銷毀的優先使用執行緒;因為對程序來說建立和銷毀乙個程序的代價是很大的。

2.執行緒的切換速度快,所以在需要大量計算,切換頻繁時使用執行緒,還有耗時的操作時用使用執行緒可提高應用程式的響應。

3.因為對cpu系統的效率使用上線程更佔優勢,所以可能要發展到多機分布的用程序,多核分布用執行緒。

4.並行操作時用執行緒,如c/s架構的伺服器端併發執行緒響應使用者的請求。

5.需要更穩定安全時,適合選擇程序;需要速度時,選擇執行緒更好。

多執行緒是指程式中包含多個執行流,即在乙個程式中可以同時執行多個不同的執行緒來執行不同的任務,

也就是說允許單個程式建立多個並行執行的執行緒來完成各自的任務。

可以提高cpu的利用率。在多執行緒程式中,乙個執行緒必須等待的時候,cpu可以執行其它的執行緒而不是等待,

這樣就大大提高了程式的效率。

執行緒也是程式,所以執行緒需要占用記憶體,執行緒越多占用記憶體也越多;

多執行緒需要協調和管理,所以需要cpu時間跟蹤執行緒;

執行緒之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題;

執行緒太多會導致控制太複雜,最終可能造成很多bug;

生活舉例

你早上上班,正要打卡的時候,手機響了。。你如果先接了**,等接完了,在打卡,就是單執行緒。

如果你一手接**,一手打卡。就是多執行緒。

2件事的結果是一樣的。。你接了**且打了卡。

同步應用程式的開發比較容易,但由於需要在上乙個任務完成後才能開始新的任務,所以其效率通常比多執行緒應用程式低。如果完成同步任務所用的時間比預計時間長,應用程式可能會不響應。多執行緒處理可以同時執行多個過程。例如,文字處理器應用程式在您處理文件的同時,可以檢查拼寫(作為單獨的任務)。由於多執行緒應用程式將程式劃分成獨立的任務,因此可以在以下方面顯著提高效能:

多執行緒技術使程式的響應速度更快,因為使用者介面可以在進行其他工作的同時一直處於活動狀態。

當前沒有進行處理的任務可以將處理器時間讓給其他任務。

占用大量處理時間的任務可以定期將處理器時間讓給其他任務。

可以隨時停止任務。

可以分別設定各個任務的優先順序以優化效能

多程序:作業系統中同時執行的多個程式

多執行緒:在同乙個程序中同時執行的多個任務

多執行緒提高cpu使用率

該博文是總結了:[[[

]

程序與執行緒

程序 process 管理單元,管理分配應用程式的資料,的記憶體空間.執行緒 thread 執行單元,執行緒負責執行乙個預先編排好的 段,執行 棧是基於執行緒的.乙個應用程式啟動的時候,程序自動建立,並且會預設建立主線程,主線程負責執行main 方法.thread t new thread new ...

程序與執行緒

程序 是擁有資源的實體,包括 1。乙個程序有乙個虛擬位址空間,不同程序位於不同的 虛擬位址空間中。程序之間若要通訊,必須通過作業系統 的功能呼叫 ipc 2。程序擁有其他資源,例如開啟的檔案和i o裝置。程序結束時,作業系統會自動釋放該程序擁有的所有資源。例如,如果 open乙個檔案而不close它...

程序與執行緒

程序包括 1 私有的虛位址空間 2 可執行程式 與資料 3 開啟系統資源列表控制代碼 4 安全訪問標誌 5 程序id 6 至少有乙個執行執行緒 執行緒包括 1 一組cpu暫存器狀態 2 兩個堆疊 系統態與使用者態 3 tls 執行緒區域性儲存區 4 執行緒id 5 安全特性 因此程序是不活潑的,它從...