我有一个用 C++ 编写的现有应用程序,它目前执行许多任务,从数据库中为所有客户读取事务,处理它们并将结果写回。
我想要做的是让多个版本在不同的机器上并行运行以增加事务容量,方法是将特定的客户子集分配给每个版本的应用程序,这样就不需要争用或数据共享,因此不需要锁定或同步。
我想要做的是在同一台机器上运行多个版本,并且分布在其他机器上,所以如果我有一个四核机器,将有四个应用程序实例在运行,每个实例都使用一个 CPU。
我将把 c++ 代码包装在 .NET c# 接口中并管理所有这些进程——本地进程和从父 c# 管理服务分发的进程,该服务负责创建、启动和停止进程,以及它们之间的所有通信和管理。
我想知道的是,如果我在四核机器上的单独后台线程上分别创建四个实例,CLR 和 .NET 是否会自动负责将负载分散到每个机器上的四个 CPU 上,或者我是否需要做些什么来利用并行处理能力?