輕量級進程

在計算機操作系統中 ， 輕量級進程  是一種實現多任務的方法 。 與普通進程相比 ， 與其他進程共享所有 （ 或大部分 ） 它的邏輯地址空間和系統資源 ； 與線程相比 ， 有它自己的進程標識符 ， 並和其他進程有着父子關係 ； 這是和類Unix操作系統的系統調用vfork 生成的進程一樣的 。 另外 ， 線程既可由應用程序管理 ， 又可由內核管理 ， 而只能由內核管理並像普通進程一樣被調度 。 Linux內核是支持的典型例子 。 在大多數系統中 ， 與普通進程的區別也在於它只有一個最小的執行上下文和調度程序所需的統計信息 ， 而這也是它之所以被稱爲輕量級的原因 。 一般來說 ， 一個進程代表程序的一個實例 ， 而代表程序的執行線程 （ 其實 ， 在內核不支持線程的時候 ， 可以很方便地提供線程的實現 ） 。 因爲一個執行線程不像進程那樣需要那麼多狀態信息 ， 所以也不帶有這樣的信息 。 因爲之間共享它們的大部分資源 ， 所以它在某些應用程序就不適用了 ； 這個時候就要使用多個普通的進程了 。 例如 ， 爲了避免內存泄漏  和實現特權分隔  。 使用多個進程也使得應用程序在出現進程池內的進程崩潰或被攻擊的情況下變得更加健壯 。