我曾经使用通常的同步编程和所隐含的拱门 如果您需要任何并行运行的东西, 您将其排队在消息系统中,您将在同一或其他VM上产生额外的过程以消耗它:相当温和的资源使用峰值, 特别是当您限制VM上的某些过程的数量时 当您并行化时,我已经看到异步编程(潜在的) 您在过程中的行动/工作 这会导致资源使用量不太可控爆发(CPU,内存)。

问题描述 投票:0回答:0
也意味着单个线程上的故障或内存泄漏会影响所有这些线程。根据您的代码,您可能会有线程为内存总线,L可容纳而战,并且有很多上下文开关可以导致明显的放缓。 另一方面,Process具有一个新的,新鲜的私人记忆空间。这意味着它们需要更长的时间才能开始,但是它们更加孤立。 Linux允许您更多地控制进程,例如限制内存和CPU。这可以使他们更容易调试。 另一方面,他们的分解通信(IPC)较慢,需要共享内存,这可能是一项复杂的任务,因为它们倾向于共享最小的数据,它们倾向于导致较少的同步错误(Mutex,locks等)

通常不提及的东西是:

过程是您唯一的分布式,多节点部署的选项。

过程可以导致NUMA CPU中更多的控制和利用,这在服务器中更为常见。 一般而言,如果您必须并行化代码的一部分,例如函数,循环等,则使用线程。如果您需要平行问题空间,每个实体在不同的数据块上进行相同的工作,则倾向于使用流程。 这只是一个快速的规则,人们可能会不同意。

asynchronous parallel-processing backend
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.