一.哪些是輕量級進程
在理解輕量級進程之前我們先必須要進程和執行緒。我們都曉得進程本質上是pcb,虛擬位址空間linux培訓班,頁表和程式碼資料的集合體,也就是核心資料+程式碼資料的集合體。從使用者的角度看上去是這樣。而從cpu的角度來看,進程是分配系統資源的單位。至於執行緒是進程內部執行,是作業系統呼叫的基本單位,雖然cpu在調度的時侯根本不認識哪些進程或則執行緒linux進程與執行緒 核心,只認pcb結構。也就是執行流linux 版本,而這個東西就是執行緒。不同的作業系統可能會用不同的結構形式來實作執行緒。而在linux下,執行緒的結構和流程的結構是完全一致的。這引起linux下的pcb的顯存是大於等於其他作業系統的。這造成linux的進程容積會大於其他作業系統下的進程容積,這些進程就是輕量級進程。輕量級進程(LWP)和普通進程之間的主要區別在於LWP共享相同的位址空間和其他資源,例如開啟的檔案等。因為共享一些資源,因而與其他普通進程相比,這種進程被覺得是輕量級的並因而得名輕量級進程。
二.輕量級進程id和進程id
首先肯定的是進程id絕對不是輕量級進程的id,只有當一個進程只有單一執行流的時侯,這個時侯這個進程只有一個主線程,此時的進程id和輕量級進程id也就是lwp才是一樣的。其餘情況下一個執行緒擁有一個lwplinux進程與執行緒 核心,同時cpu在調度的時侯也是調度lwp.
三.LWP與pthread_create所建立的執行緒之間的關係
當程式呼叫pthread_create()函數時,它會建立一個新的LWP。這個新的LWP被拿來實作新建立的線程,並與其他線程共享同一個行程的資源。因而我們可以將pthread_create建立的執行緒看做是在程式中建立的一種LWP。
換句話說LWP與pthread_create所建立的執行緒是對應的,pthread_create所建立的執行緒相當於是系統中的LWP。
以上是輕量級進程是什麼?一文帶你深入理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!