一、定義
程序:具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位。
執行緒:是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源,但是它可以和同屬於乙個程序的其他執行緒共享程序所擁有的的全部資源。
二、關係和區別
乙個執行緒可以建立和撤銷另乙個執行緒;同乙個程序中的多個執行緒之間可以併發執行。相對於程序而言,執行緒是乙個更加接近於執行體的概念,它可以與同程序中的其他程序共享資料,但是擁有自己的棧空間,擁有獨立的執行序列。
區別主要有以下幾點:
排程:程序是擁有資源的基本單位,執行緒是排程和分派的基本單位。
共享位址空間:程序擁有各自獨立的位址空間、資源,所以共享複雜,需要用ipc(inter-process communication,程序間通訊),但是同步簡單。而執行緒共享所屬程序的資源,因此共享簡單,但是同步複雜,需要用加鎖等措施。
占用記憶體和cpu:程序占用記憶體多,切換複雜,cpu利用率低;而執行緒占用記憶體少,切換簡單,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 安全特性 因此程序是不活潑的,它從...