unix 运行 一个 C++ 二进制文件多次并行运行是否存在问题?

Is there an issue in unix running one C++ binary multiple times and parallel?

我的 unix 系统上有一个用 C++ 编写的服务器编译二进制文件。我想使用一个小脚本动态启动服务器。我可以指定服务器将 运行 连接的端口作为参数。我的问题是,如果多次启动一个二进制文件并让它们 运行 并行而不是复制二进制文件是否存在问题。在我的测试中,它按预期工作,但我想确保没有问题。

大多数操作系统允许您 运行 同一程序的实例数量不限。程序有责任对实例数量实施任何限制(如果有的话)。

首先,您可以在几乎所有操作系统上 运行 同一个二进制文件的多个实例,您不需要复制它。然而还有一个更深层次的问题。

这完全取决于应用程序的编写方式。在一个完美的世界里,不,你不会有任何问题,但世界并不完美。应用程序可能使用系统范围的资源并假定它独占使用该资源。对于服务器等大型应用程序来说,这并非闻所未闻。你已经提到了一件事,端口,但正如你所说,你可以改变它,但你确定那是唯一的事情吗?如果您确定,那么您可以 运行 多个实例而不会出现问题。但是,应用程序可能会假定它对其他资源具有独占使用权,文件可能是一个,如果您 运行 多个副本,则此假设将被打破。然后应用程序很可能不会按预期运行。