首頁 >系統教程 >Linux >輕量級進程是什麼?一文帶你深入理解

輕量級進程是什麼?一文帶你深入理解

王林
王林原創
2024-07-24 09:38:191186瀏覽

輕量級進程是什麼?一文帶你深入理解

一.哪些是輕量級進程

在理解輕量級進程之前我們先必須要進程和執行緒。我們都曉得進程本質上是pcb,虛擬位址空間linux培訓班,頁表和程式碼資料的集合體,也就是核心資料+程式碼資料的集合體。從使用者的角度看上去是這樣。而從cpu的角度來看,進程是分配系統資源的單位。至於執行緒是進程內部執行,是作業系統呼叫的基本單位,雖然cpu在調度的時侯根本不認識哪些進程或則執行緒linux進程與執行緒 核心,只認pcb結構。也就是執行流linux 版本,而這個東西就是執行緒。不同的作業系統可能會用不同的結構形式來實作執行緒。而在linux下,執行緒的結構和流程的結構是完全一致的。這引起linux下的pcb的顯存是大於等於其他作業系統的。這造成linux的進程容積會大於其他作業系統下的進程容積,這些進程就是輕量級進程。輕量級進程(LWP)和普通進程之間的主要區別在於LWP共享相同的位址空間和其他資源,例如開啟的檔案等。因為共享一些資源,因而與其他普通進程相比,這種進程被覺得是輕量級的並因而得名輕量級進程。

内核进程和内核线程_linux内核多线程_linux进程与线程 内核

linux内核多线程_内核进程和内核线程_linux进程与线程 内核

二.輕量級進程id和進程id

linux内核多线程_linux进程与线程 内核_内核进程和内核线程

首先肯定的是進程id絕對不是輕量級進程的id,只有當一個進程只有單一執行流的時侯,這個時侯這個進程只有一個主線程,此時的進程id和輕量級進程id也就是lwp才是一樣的。其餘情況下一個執行緒擁有一個lwplinux進程與執行緒 核心,同時cpu在調度的時侯也是調度lwp.

内核进程和内核线程_linux内核多线程_linux进程与线程 内核

三.LWP與pthread_create所建立的執行緒之間的關係

linux进程与线程 内核_内核进程和内核线程_linux内核多线程

當程式呼叫pthread_create()函數時,它會建立一個新的LWP。這個新的LWP被拿來實作新建立的線程,並與其他線程共享同一個行程的資源。因而我們可以將pthread_create建立的執行緒看做是在程式中建立的一種LWP。

換句話說LWP與pthread_create所建立的執行緒是對應的,pthread_create所建立的執行緒相當於是系統中的LWP。

以上是輕量級進程是什麼?一文帶你深入理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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