我知道线程是首选的方法,但在Web服务器之类的东西中使用分叉或线程有什么好处?
更新:我的问题是关于分离进程或启动一个单独的线程来处理每个连接。
还有其他(或许更好)的方法来管理连接吗?
答案 0 :(得分:2)
在许多现代Web应用程序中,您经常在外部资源上花费大量时间:数据库,缓存服务器,文件系统等。在这种情况下,线程模型有助于不为多个进程保留内存资源这大部分时间都会闲着。
分叉模型的好处主要在于您拥有不了解线程的现有框架(大多数PHP,Ruby,Python等应用程序)。使现有应用程序具有线程感知可能需要花费大量的时间和精力。在某些情况下,例如应用程序使用大量CPU,RAM带宽或带资源争用的I / O(即单通道磁盘控制器),进程并没有那么大的劣势。