15 进程池和线程池

进程池是由服务器预先创建的一组子进程,这些子进程书目在3~10个之间。线程池中的线程书目应该和CPU的数量差不多

进程池(线程)中的所有子进程都运行着相同的代码,并具有相同的属性(比如优先级、PGID)。因为进程池在服务器启动之初就创建好了,所以每个子进程都相对“干净”。他们没有打开不必要的文件描述符,也不会错误的使用大块堆内存

新任务到来时,主进程将通过某种方式选择进程池中某一子进程来为之服务,主进程选择哪个子进程来为新任务服务有两种方式:

  • 主进程使用某种算法来主动选择子进程(随机算法,轮流算法)
  • 主进程和所有子进程通过一个共享的工作队列来同步,子进程都睡眠在该工作队列上

监听socket,连接socket

半同步/半反应堆模式:主进程统一管理这两种socket

高效的半同步/半异步模式和领导/追随者模式:主进程管理监听socket,子进程管理属于自己连接的socket

四个例子:

15.3 半同步/半异步进程池实现 / 289
15.4 用进程池实现的简单cgi服务器 / 298
15.5 半同步/半反应堆线程池实现 / 301
15.6 用线程池实现的简单web服务器 / 304

 

 

 

 

 

 

转载于:https://www.cnblogs.com/raichen/p/5039292.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值