我注意到像firefox / iexplorer / windows image viewer等一些应用程序没有为应用程序的新实例创建新进程。为了解释我的意思,我希望在打开Firefox的两个实例时会有两个不同的进程。我测试的其他一些应用程序每个实例都有一个进程。
我的第一个问题是为什么有人会使用一个进程多实例模型?对于我来说,似乎比每个进程都有一个实例复杂得多。我想一个原因可能是资源的使用。
我的第二个问题是你会如何实现这样的东西?例如,为新实例分配一些线程?
答案 0 :(得分:1)
首先,多个"实例的一个过程"将所有进程内存保存在一个地方,无需使用IPC在不同的实例之间发送消息"。
要实现这样的功能,您可以在此处使用CreateMutex API:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682411(v=vs.85).aspx
如果互斥锁已经存在且您的应用的另一个实例已启动,您只需将应用程序打开调用转发到应用程序的现有实例即可。