新实例不会产生新进程

时间:2014-06-11 17:03:30

标签: windows multithreading process

我注意到像firefox / iexplorer / windows image viewer等一些应用程序没有为应用程序的新实例创建新进程。为了解释我的意思,我希望在打开Firefox的两个实例时会有两个不同的进程。我测试的其他一些应用程序每个实例都有一个进程。

我的第一个问题是为什么有人会使用一个进程多实例模型?对于我来说,似乎比每个进程都有一个实例复杂得多。我想一个原因可能是资源的使用。

我的第二个问题是你会如何实现这样的东西?例如,为新实例分配一些线程?

1 个答案:

答案 0 :(得分:1)

首先,多个"实例的一个过程"将所有进程内存保存在一个地方,无需使用IPC在不同的实例之间发送消息"。

要实现这样的功能,您可以在此处使用CreateMutex API:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682411(v=vs.85).aspx

如果互斥锁已经存在且您的应用的另一个实例已启动,您只需将应用程序打开调用转发到应用程序的现有实例即可。