首页 > 解决方案 > 机器中的多任务与多进程

问题描述

我有点困惑。我有一些工作。我可以在同一台机器上使用许多 Windows 3服务,如 service1、service2、service3,或者我可以通过启动 Task 3次 来完成这项工作Task.Factory.StartNew(() => {//mytask});

我知道,对于任务,我在机器上有一个进程,但是对于许多服务,我有多个进程,但是使用系统资源时有什么区别。哪条路才是真路。

(所有这些服务和/或启动任务将作为消费者侦听一些队列)(并且 3 只是一个比较示例)(单个作业可能需要 3 分钟)

标签: c#multiprocessingwindows-servicestask

解决方案


不同的工艺:


UPS:

耐用性:

当您在单独的进程中启动线程时,没有其他线程会受到任何线程的活动的损害,因为它们使用自己的虚拟地址空间。

可扩展性:

当您在单独的应用程序中托管每个任务时,您可以将它们部署在不同的机器上——创建一个分布式独立系统。

下降:

资源浪费:

通过在不同的进程中启动任务,您为它们中的每一个分配虚拟地址空间,并且最终可能会有上下文切换,这对性能来说不是很好,因为您的机器正在保存核心状态并在进程返回到上下文时恢复它。不仅如此。

可维护性降低:

如果您的任何服务相互依赖,您应该始终跟踪它们的可用性和连贯性。

对于一个进程和进程中的不同线程,反之亦然。

您需要什么由您决定。


推荐阅读