web并发策略

在考查服务器性能时,服务器处理请求的能力与其内部实现的并发方式直接相关。以下是几种并发方式说明,来自《构建高性能Web站点》。

1.一个进程处理一个请求连接。非阻塞I/O

    一个主进程,负责接收请求,当接收到请求时,主进程fork一个进程,负责处理这个请求,处理完成,销毁进程。(不断的创建销毁进程,比较浪费系统资源,进程的创建是一个很重的操作)

2.一个主进程,多个预生成的子进程。(Apache 的 prefork模式)

    主进程使用非阻塞来接收连接,建立连接之后,主进程将任务分配给空闲的子进程来处理。
    每个子进程使用阻塞来竞争接收连接,一旦一个子进程建立连接后,它将继续进行处理。处理完之后,继续等待连接,而不是销毁。

3.一个线程处理一个连接,非阻塞I/O。

     一个进程中通过多个线程来处理多个连接。Apache的worker多路处理模块就是这种模式。主要目的在于减少prefork模式中太多进程的开销。使Apache可以支持更多的并发连接。

4.一个进程处理多个连接,非阻塞I/O。

     一个进程处理多个连接,存在一个潜在条件,就是多路I/O就绪通知的应用。

    一个进程负责处理多个请求,当处理一个请求时,如果数据尚未就绪,不进行等待(当数据就绪,会通过事件通知,通知主进程),而是转而去处理其他请求。同时每次都会检查是否有数据就绪,如果有,返回给用户。然后继续处理其他请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值