2014-01-30 61 views
0

我一直在閱讀關於線程和進程的功能。進程和線程之間的一個主要區別是線程與創建它的進程共享資源,而進程將擁有自己的一組資源。我想測試這個,所以我打開了我的任務管理器並打開了MS Word,並且在任務管理器中,有一個名爲WINWORD.EXE的新進程被加載,並且我再次打開了另一個MS Word(保持前一個打開) Manager只顯示一個正在運行的WINWORD.EXE進程。我只是不明白,因爲需要將兩個MS詞彙視爲兩個獨立的過程(因爲他們不共享資源)。進程是否有自己的內存?

+0

'winword.exe'是測試應用程序的不吉利選擇。改用'calc.exe'。 –

回答

5

在這種情況下只有一個進程。這只是Word的實施方式,它會阻止您創建多個進程。當您嘗試啓動另一個進程時,新進程會將請求轉發給現有進程,並且窗口將由現有進程顯示。

但是,單獨的進程確實具有不同且獨立的地址空間。用一個簡單的程序嘗試你的實驗,例如記事本。

+0

但是,這並不意味着兩個進程不能共享它們之間的內存區域。有些資源會自動共享 - 例如,引用一個庫的兩個項目通常會共享庫的一些內存。 – Luaan

+0

@Luaan寫的副本是一個優化。從概念上講,地址空間是孤立的,虛擬內存系統可能會因COW原因而優化COW。 –

相關問題