它用于一般概念,而不是Android特定的
通常,每个用户都会发送该页面的HTTP请求。服务器接收请求并将它们委托给不同的工作者(进程或线程)。
根据给定的URL,服务器会读取文件并将其发送回用户。如果文件是动态文件(如PHP文件),则在将文件发送回用户之前执行该文件。
一旦发回请求的文件,服务器通常会在几秒钟后关闭连接。
修改强>
对于HTTP使用TCP,这是一种基于连接的协议。也就是说,客户端在与服务器通信时建立TCP连接。
允许多个客户端同时连接到同一目标计算机上的同一目标端口。服务器只会打开多个同时连接。
Apache(以及大多数其他HTTP服务器)具有多处理模块(MPM)。这负责分配Apache线程/进程来处理连接。然后,这些进程或线程可以在它们自己的连接上并行运行,而不会相互阻塞。即使没有连接打开,Apache的MPM也倾向于保持打开“备用”线程或进程,这有助于加快后续请求。
注意:强>
多线程最常见的问题之一是“竞争条件” -你的两个请求正在做同样的事情(“竞争”做同样的事情),如果是一个资源,其中一个将获胜。如果他们都将记录插入到数据库中,则他们不能同时获得相同的ID - 其中一个将获胜。因此,在编写代码时需要小心,以便同时实现其他请求,并可能修改数据库,写入文件或更改全局变量。