gpt4 book ai didi

c# - 机器中的多任务与多进程

转载 作者:行者123 更新时间:2023-12-03 03:02:25 29 4
gpt4 key购买 nike

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

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

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

最佳答案

不同的流程:

<小时/>

优点:

耐用性:

当您在单独的进程中启动线程时,任何其他线程都不会受到任何线程的事件的损害,因为它们与自己的线程一起工作 virtual address space.

可扩展性:

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

缺点:

资源浪费:

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

可维护性降低:

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

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

您需要什么由您决定。

关于c# - 机器中的多任务与多进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59261390/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com