我想知道为什么我们更喜欢使Web服务器多线程
而不是让它成为多进程Web服务器......
是因为遗留问题......
我想听听实际原因以及理论上的原因
答案 0 :(得分:4)
在* nix上,要启动进程,您需要复制父进程的所有资源。例如,所有父文件描述符都是重复的,并且创建新的存储空间以包含新进程。当流程终止时,一切都必须被拆除。
另一方面,线程基本上只是一个堆栈。很快就能开始和停止。
早期的Web服务器没有使用线程的原因很简单:它们尚未实现。
答案 1 :(得分:1)
线程通常比流程便宜。