tft每日頭條

 > 生活

 > 線程和進程的區别舉例

線程和進程的區别舉例

生活 更新时间:2024-10-05 21:09:03

線程和進程都是程序在執行過程中所調度的基本資源,但是二者卻有着本質上的差别。

下面就來給大家介紹一下它們之間的區别:

1、概念不同:

線程是操作系統為多個處理器同時提供的一個運行空間。一個進程中可以有一個或多個線程;一個程序中也可以有多個進程,但隻能有一個線程與之對應。而同一個程序的各個子程序之間是沒有任何關聯的。進程則是系統為實現某個目标而調度的一系列相互協作的工作單元的組合體(如桌面應用程序、網絡服務器等)。

2、作用不同:

一個程序至少擁有一個的運行實體-即一個"任務",這個任務的執行就是由這個運行的實體來實現的;每個任務都有一個與之相對應的"處理機"。

3、實現方式不同:

在多道程序設計語言中,為了便于描述和管理這些不同的工作單元,人們通常用"塊"(block)來表示它們之間的關系,"塊"中的元素稱為"屬性"(property),例如:"文件"、"窗口"、"按鈕"。

而我們平常所說的兩個東西之間有什麼時說的也是這兩個東西的共同屬性是什麼(如鼠标的兩個箭頭分别指向哪個位置等),而不是說它們的具體實現過程是什麼("如何操作的","怎麼實現的")。

4、控制權不同:

對于同一時間隻有一個處理器的計算機來說,"任務管理器"對每一個被調度的任務的控制權都是一樣的(因為所有被控制的資源都是共享的);而對于多道程序設計語言的編譯器或解釋器來說,則要通過設置相應的标志位來區分各個工作單位之間的級别關系了(比如把a對象的指針賦值到b對象上時要先判斷一下a對象是否還在棧上)。

5、生命周期不同:

每個的運行實體都有自己的生命期:從進入該狀态的那一刻起開始計時直到退出該狀态為止的時間間隔被稱為它的生存周期;當某時刻到來的時候如果還沒有完成它自己的生命周期的話那麼它就進入了阻塞的狀态;當它完成了自己當前的生命周期後就可以離開阻塞的狀态并繼續進行下一段時間的生命周期了。

6、創建順序及級:

不同的程序其創建順序也不同:首先啟動的是主程序也就是内核所在的主機代碼所在的機器上的主存中的主函數所在的那台機器的指令系統所對應的機器碼段地址所對應的指令代碼段地址所指的機器代碼段的第一個字節的偏移量指定的那個機器碼号的那個指令代碼段地址所指的寄存器内的内容就應該是main函數所在的那條指令的内容。

線程和進程的區别舉例(線程與進程的區别)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved