執行緒又叫迷你行程。執行緒比進程更輕,更容易創建。切換更容易。若存在大量的密集計算和IO操作。擁有多個線程允許這些活動重疊進行。
例子。當我們用文字處理軟體處理文字的時候,會有多線程。一個和使用者的gui介面交互。一個是處理文件的自動備份。如果是單線程的話。當備份的時候,鍵盤的操作就會被忽略。對使用者不友善。
#進程擁有一個執行的執行緒,在該執行緒中有一個程式計數器,暫存器,以及堆疊記錄歷史紀錄。行程用來把資源合在一起,執行緒則是CPU調度的基本單元。
左邊的是進程中的內容,也就是所有執行緒都共享的,右邊的資料是單一執行緒中的內容,和其他執行緒不共享
當一個執行緒完成工作後,透過(thread_exit) 退出
另外一個常見的執行緒呼叫時(thread_yield) 它允許執行緒自動放棄CPU而讓另一個執行緒運行
為了實作可移植的程式。 IEEE制定了線程的標準。
在使用者空間實作執行緒。把整個線程放在使用者空間。內核一無所知。
使用者級線程,可以用使用者實作自己的調度演算法。
核心中實作執行緒。採用系統調用。內核中存放線程表.在核心中建立和撤銷線程,代價是非常高的。所以採用讓這個執行緒不可運行的標識。
混合實作
核心識別內核線程,進行調度。一些核心線程對多個用戶線程復用。
以上是作業系統知識中關於線程的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!