Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading Web服务器中的Fork与Thread_Multithreading_Operating System_Webserver_Fork - Fatal编程技术网

Multithreading Web服务器中的Fork与Thread

Multithreading Web服务器中的Fork与Thread,multithreading,operating-system,webserver,fork,Multithreading,Operating System,Webserver,Fork,我知道线程是首选的方式,但是在Web服务器之类的东西中使用分叉或线程有什么好处呢 更新:我的问题是要么分出一个进程,要么启动一个单独的线程来处理每个连接 有没有其他(也许更好)的方法来管理连接?在许多现代web应用程序中,您经常在外部资源上花费大量时间:数据库、缓存服务器、文件系统等。在这种情况下,线程模型通过不为将花费大部分空闲时间的多个进程保留内存资源而有所帮助 forking模型的好处主要是当您拥有不了解线程的现有框架(大多数PHP、Ruby、Python等应用程序)时。使现有应用程序具有

我知道线程是首选的方式,但是在Web服务器之类的东西中使用分叉或线程有什么好处呢

更新:我的问题是要么分出一个进程,要么启动一个单独的线程来处理每个连接


有没有其他(也许更好)的方法来管理连接?

在许多现代web应用程序中,您经常在外部资源上花费大量时间:数据库、缓存服务器、文件系统等。在这种情况下,线程模型通过不为将花费大部分空闲时间的多个进程保留内存资源而有所帮助


forking模型的好处主要是当您拥有不了解线程的现有框架(大多数PHP、Ruby、Python等应用程序)时。使现有应用程序具有线程意识可能需要花费大量的时间和精力。在某些情况下,例如应用程序使用大量CPU、RAM带宽或I/O资源争用(即单通道磁盘控制器),进程并没有那么大的缺点。

如果没有上下文,这个问题就没有意义。此外,
fork()
最初用于没有线程概念的操作系统。现在谁还使用fork(),我想知道……每个连接都不需要单独的线程。这是一个非常古老的想法。另一种没有fork和线程的方法是