是否存在应用程序实例跨多台计算机运行的场景?
-
22-07-2019 - |
题
我们知道,单个应用程序实例可以使用多个内核甚至多个物理处理器。对于云和集群计算,或者其他特殊场景,我不知道单一立场是否可以跨多台计算机或跨多个操作系统实例运行。
这对我来说很重要,因为除了被认为是糟糕的编程之外,我还使用了一些静态的 (如 C# 中) (全局)变量,如果这些变量在计算机之间共享,我的程序可能会出现意外的行为。
更新 我会更具体:我正在编写一个 .NET 应用程序,它有一个变量可以计算活动 IP 连接的数量,以防止连接数量不超过每台计算机的限制。我担心如果我将该应用程序部署在云计算主机中,每台计算机是否都会有一个变量实例。
其他提示
您使用什么编程环境(语言)?它应该准确定义“静态”的含义。很可能它不允许不同计算机之间共享任何信息,除非通过 MPI 或 RPC 等显式通道。
但是,抽象的高级环境可能旨在完全向您隐藏“在多台计算机上运行”的概念。可以想象设计一个可以在集群上运行的虚拟机,并且实际上会在不同的物理机之间共享静态变量 - 但在这种情况下,你的程序运行在单个虚拟机上,无论它运行在一台还是多台物理机上都应该没有任何区别。
如果你甚至无法想象的情况下发生这种情况,你为什么担心呢?
通常情况下,这可能发生在涉及某种RPC的情况。
恩,是的,还有的distcc。它GCC编译器分配。
不隶属于 StackOverflow