Multithreading 管理多个流程:常见的策略是什么?
虽然在某些情况下多线程处理速度更快,但有时我们只是希望生成多个工作进程来完成工作。这样做的好处是,如果其中一个工作人员崩溃,则不会导致主应用程序崩溃,并且用户无需担心很多互锁问题 COM+似乎是在Windows上实现这一点的好方法。缺点是我们需要为辅助进程编写COM+包装 然而,当我看到它时,它的大多数用法似乎都与IIS有关。其他应用程序(如scientific/graphics)不觉得生成多个工作进程很有用吗 因此有几个问题:Multithreading 管理多个流程:常见的策略是什么?,multithreading,concurrency,multiprocessing,com+,pooling,Multithreading,Concurrency,Multiprocessing,Com+,Pooling,虽然在某些情况下多线程处理速度更快,但有时我们只是希望生成多个工作进程来完成工作。这样做的好处是,如果其中一个工作人员崩溃,则不会导致主应用程序崩溃,并且用户无需担心很多互锁问题 COM+似乎是在Windows上实现这一点的好方法。缺点是我们需要为辅助进程编写COM+包装 然而,当我看到它时,它的大多数用法似乎都与IIS有关。其他应用程序(如scientific/graphics)不觉得生成多个工作进程很有用吗 因此有几个问题: 为什么COM+在IIS以外的领域不更受欢迎?如果我编写了一个非I
- 为什么COM+在IIS以外的领域不更受欢迎?如果我编写了一个非IIS应用程序,并希望在Windows上使用进程管理,我应该使用COM+还是有更好的替代方案
- 跨平台的方式是什么?是否有库为我提供了一个“进程池”(工作进程将智能地拾取工作,可以管理,等等)
请参见由于以下两个因素,COM应用程序池的大门并没有被一群暴徒冲进:
简而言之,COM应用程序池对于IIS以外的任何东西来说都是多余的。我无法回答您问题的COM方面,但值得注意的是,在另一个世界(除了HPC MPI),多处理(而不是更常见的多线程方法)显然是活跃的,茁壮成长:Python 为什么??Python的GIL(“”)严重阻碍了大多数对Python代码进行多线程处理的尝试,这是通常推荐的在SMP上并行Python的方法。标准库包括:;还有各种各样的
Python当然应该满足任何多平台需求 谷歌的webbrowser chrome是一款多进程架构软件。它是开源的,所以您可以查看它的代码并了解如何管理流程 谢谢你让我知道.NET4的并行扩展!这显然是一件非常前卫的事情,没有多少人写过关于它的howtos等。@Kizzx2,它是非常新的,我想它是在2010年初发布的,但在MSDN文档中,微软提供了很好的见解,易于理解和实现。我曾经研究过MPI。我认为这将是运行并行程序的最终方式。不过,在我的范围内,我只想在本地计算机上运行一个“进程池”。对于我看过的所有MPI实现,它需要使用某种
mpirun
命令启动一个进程,并将整个应用程序建立在MPI平台之上。我想这对于我的用例来说太遥远了。其他跨平台方法是使用套接字、管道、RPC、消息队列或用于进程间通信的组合的fork或exec。关于供应商锁定applies.MPI的相同演算作为多线程解决方案往往非常糟糕。它在管理大规模并行性方面往往比gen好得多