一个程序可以有多个进程吗?

fir*_*may 9 operating-system process

在阅读并搜索了操作系统、进程和线程之后,我查看了 wiki,它说,

计算机程序是指令的被动集合,进程是这些指令的实际执行。多个进程可能与同一个程序相关联;例如,打开同一程序的多个实例通常意味着正在执行多个进程。

现在,一个程序可能有多个进程,我不包括运行同一程序的多个实例的可能性。我的意思是一个程序的一个实例正在运行,一个程序可能有多个进程吗?如果是,如何?如果没有,为什么不呢?

我是这方面的新手,但该死的好奇:) 感谢您的帮助..

小智 6

是的,很明显 - 您可以运行大多数程序的两个或更多副本 - 我通常会运行大约 5 个 vim 副本,每个副本都是一个单独的进程。至于如何,操作系统加载可执行文件,创建一个进程,然后告诉该进程开始执行文件内容。

  • 我在上面提到过,我不包括您想要运行多个程序实例的情况。我的意思是程序的一个实例可以在多个进程中运行吗? (3认同)
  • 是的,由程序员决定一个进程应该产生子进程(或线程)。 (3认同)
  • @mayjune:在firefox 示例中,当您打开多个选项卡时,不会创建多个firefox 进程,但在google chrome 的情况下,当您打开多个选项卡时,会创建多个进程。所以这取决于您使用的程序是产生线程还是创建新进程。您不能在 Windows 上创建 2 个 VLC 播放器实例,但您可以在 Linux 上这样做。所以这取决于程序员如何实际制作程序 (2认同)

Ash*_*ary 5

这绝对是可能的,但桌面应用程序可能不是一个很好的例子,我认为这是你困惑的根源。

考虑使用网络服务器(NginX 或 Apache)。有一个主进程和多个工作进程在工作。主进程“接受”工作,可以这么说,并将其委托给工作人员。NginX 和 Apache 都可以配置为任意数量的工作进程。

在我们公司,我们致力于提供 SaaS,帮助企业通过其网站与访问者进行在线聊天。我们系统的后端部分有多个“服务”相互通信以完成任务。每个服务都有多个正在运行的实例。