2014-01-30 94 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。 –

相关问题