首頁  >  文章  >  後端開發  >  作業系統知識中關於線程的理解

作業系統知識中關於線程的理解

一个新手
一个新手原創
2017-10-23 09:29:241618瀏覽

執行緒

執行緒又叫迷你行程。執行緒比進程更輕,更容易創建。切換更容易。若存在大量的密集計算和IO操作。擁有多個線程允許這些活動重疊進行。

例子。當我們用文字處理軟體處理文字的時候,會有多線程。一個和使用者的gui介面交互。一個是處理文件的自動備份。如果是單線程的話。當備份的時候,鍵盤的操作就會被忽略。對使用者不友善。

 

線程模型

#進程擁有一個執行的執行緒,在該執行緒中有一個程式計數器,暫存器,以及堆疊記錄歷史紀錄。行程用來把資源合在一起,執行緒則是CPU調度的基本單元。

 

 左邊的是進程中的內容,也就是所有執行緒都共享的,右邊的資料是單一執行緒中的內容,和其他執行緒不共享

當一個執行緒完成工作後,透過(thread_exit) 退出

另外一個常見的執行緒呼叫時(thread_yield) 它允許執行緒自動放棄CPU而讓另一個執行緒運行

 

POSIX 執行緒

為了實作可移植的程式。 IEEE制定了線程的標準。

在使用者空間實作執行緒。把整個線程放在使用者空間。內核一無所知。

使用者級線程,可以用使用者實作自己的調度演算法。 

核心中實作執行緒。採用系統調用。內核中存放線程表.在核心中建立和撤銷線程,代價是非常高的。所以採用讓這個執行緒不可運行的標識。

混合實作

核心識別內核線程,進行調度。一些核心線程對多個用戶線程復用。

以上是作業系統知識中關於線程的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn