程序和執行緒小解析

2022-04-03 18:53:21 字數 555 閱讀 9083

程序是作業系統進行資源分配的單位。

執行緒是cpu任務排程的基本單元。

至於程式和程序的區別?程式是死的**,用我老師的話來說就是相當於程序的屍體,不可被執行或排程,以檔案形式存在於系統中。而程序則是活的程式,是可以被系統執行和排程的。

程序的五大狀態:

建立(建立程序)-> 就緒(建立完畢,等待cpu排程) -> 執行(正在占用cpu執行) -> 等待(等待io等其他操作的結束) -> 終止(結束程序)

執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧)

執行緒共享的東西:**、資料、堆區

執行緒獨有的:暫存器、棧區、程式計數器 、執行緒的優先順序

乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.

臨界區

互斥鎖

訊號量

事件

管道

共享記憶體

訊息佇列

訊號量

socket

執行緒和程序

標準的定義是 程序是執行緒的容器,乙個程序可於乙個或者多個執行緒,它是系統分配資源的基本單位 同乙個程序下,執行緒共享位址空降 已經開啟的檔案 訊號處理函式 報警訊號和其他,執行緒自己只保留程式計數器和棧。但是很遺憾的,這個只是教科書上的定義,實際情況是每個作業系統實現的作業系統特性不同,實現的方法...

程序和執行緒

乙個程序就是當前正在執行的乙個程式,包括程式的暫存器 程式計數器和變數的當前值。不同的程序擁有不同的位址空間。而執行緒可以理解為是程序中的控制流。同乙個程序內也就是說在同乙個位址空間內可以有多個控制流。也就是可以有多個線 程,他們共享位址空間。我們通常將程序視為是資源的集合,程序中有程式的正文 資料...

執行緒和程序

對於求職者,在面試的時候大多都會被問到 你對多執行緒了解麼?給我講講執行緒和程序的區別吧。在unix中,乙個程序可以理解為執行緒 位址空間 檔案描述符 資料,道破現實,其實就相當於老闆和員工,老闆就是程序,員工就是執行緒。老闆需要僱傭若干員工 執行緒 還要有辦公樓 位址空間 還要有若干的辦公裝置 檔...