为什么多线程通常与多处理相结合?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么多线程通常与多处理相结合?相关的知识,希望对你有一定的参考价值。
作为一个学校项目,我必须实现一个http服务器,所以我看着现有的http服务器架构,我遇到了工作人员多处理模块。
这个模块实现了一个混合的多线程多进程服务器,它就是forks,每个forked进程产生自己的线程池来处理请求。
这让我想知道,混合多进程多线程程序相对于多线程程序有什么优势?为什么不保留一个进程并生成一个更大的线程池?
答案
可用性。
你的程序有新生的缺陷,所以最好让一个实例与M个线程崩溃而不是崩溃N * M线程。 (N-1)* M个其他线程可能能够继续运行,并且您可能已经降低了任何线程崩溃的可能性。
这也被用作处理资源泄漏的技术:在处理N个事务之后,服务器“exec”本身,这导致其资源的清理。我很确定Thompson&Ritchie没有预见到作为执行官的用例....
以上是关于为什么多线程通常与多处理相结合?的主要内容,如果未能解决你的问题,请参考以下文章
将多线程和多处理与 concurrent.futures 相结合