2011-05-14 93 views
5

關於上述問題,下列斷言是否屬實?輕量級與重量級過程

輕量級進程包含一個過程,但多線程

重量級的過程中可以包含多個子進程

我知道還有比這更給它,但我想知道這是否會傳遞一個非常非常基本的瞭解重量級和輕量級的過程...

回答

2

其實我認爲這是相反的方式。 Wikipedia這樣說:

在計算機操作系統中, 輕量級進程(LWP)是實現多任務的手段 。在長期的 傳統意義, 在unix系統V和Solaris,一個 LWP運行在用戶空間上 單內核線程的頂部,並共享其 地址空間和系統資源 與在同其他的LWP使用 過程。由一個線程庫管理的多個用戶級線程 可以放置在一個或多個LWP之上 - 允許在 用戶級別完成多任務,這可以具有一些 的性能優勢。

因此,LWP在同一個進程中共享地址空間。換句話說,LWP是一個子過程。

1

LWP ==線程

輕量級進程是這仍然是在Solaris和跨* nix的變種一些程序中使用的線程面額。 (例如,Linux上的ps)。

+1

它比這更復雜,因爲多個線程可以在LWP之上運行。 – 2011-05-14 19:11:11

+0

@David:不,它不是。沒有什麼能阻止你在單個'POSIX pthread'之上運行例如多個'GNU pth'線程,這是相同的情況。 – ninjalj 2011-05-14 19:14:34

4

操作系統(OS)下的正常進程是一個重量級進程。對於每個這樣的進程,操作系統都提供了一個獨立的地址空間,這樣可以將不同的用戶和服務分開。從一個這樣的過程切換到另一個過程是耗時的,儘管現代機器包含專用於該任務的特殊單元,即存儲器管理單元(MMU)。 輕量級進程(LWP),也稱爲線程,在正常(重量級)進程的地址空間下運行,並且在同一進程下的LWP可共享變量。從一個LWP切換到另一個LWP要比從一個重量級過程切換到另一個要快得多,因爲管理較少,並且不涉及MMU。

1

1.multithreading

在Java multithrading是執行多個線程同時的處理..

線程是一個基本上輕量級進程... processing..multithrading的最小單元,多處理兩者都使用以實現多任務..

爲什麼我們使用多線程和多處理 - 因爲線程共享一個共同的內存區域,而不是分離內存的單線程..

輕量級進程包含一個過程,但多線程

重量級的過程中可以包含多個子進程

它不會阻止用戶因爲線程是獨立的,你可以在同一時間執行多個操作。

多任務

Multasking是執行多個任務simultanously..we使用多任務處理以利用上cpu..multitasking的過程有其必須達到兩種類型.. 1.Process基於多任務處理(多進程) 2基於.Thrad多任務處理(Multithrading) 1.Process基於多任務(多處理)

每個進程都在內存中自己的編輯部地址和分配seprate內存給每個進程..

這是一個重量級的理線秒。

2.Thrad基於多任務處理(Multithrading)

線程共享相同的地址空間。

線程輕量級。

什麼是線程..

線程是一個輕量級的process..it的包含在單一流程,而是多個線程,依賴性強,如果在一個線程中發生異常,但在其他線程不能大意。

0

線程也稱爲輕量級進程,因爲它存在於同一地址塊的過程和共享代碼,數據和與同threads.It的處理的OS資源花費更少資源的線程之間進行通信。

重量級過程限定平行於完成其tasks.Every過程具有他們自己的數據,代碼和OS資源和處理需要額外的資源本身之間進行通信的處理。

輕量級進程具有比重重量過程更具優勢。