2014-06-11 14 views
0

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

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

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

回答

1

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

要实现这样的事情,你可以使用CreateMutex API这里:

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

如果互斥已经存在,并且您的应用程序的另一个实例启动时,你可以转发应用程序开启调用该应用的现有实例。

相关问题