15 进程池和线程池
2015-12-11 15:48
253 查看
进程池是由服务器预先创建的一组子进程,这些子进程书目在3~10个之间。线程池中的线程书目应该和CPU的数量差不多
进程池(线程)中的所有子进程都运行着相同的代码,并具有相同的属性(比如优先级、PGID)。因为进程池在服务器启动之初就创建好了,所以每个子进程都相对“干净”。他们没有打开不必要的文件描述符,也不会错误的使用大块堆内存
新任务到来时,主进程将通过某种方式选择进程池中某一子进程来为之服务,主进程选择哪个子进程来为新任务服务有两种方式:
主进程使用某种算法来主动选择子进程(随机算法,轮流算法)
主进程和所有子进程通过一个共享的工作队列来同步,子进程都睡眠在该工作队列上
监听socket,连接socket
半同步/半反应堆模式:主进程统一管理这两种socket
高效的半同步/半异步模式和领导/追随者模式:主进程管理监听socket,子进程管理属于自己连接的socket
四个例子:
15.3 半同步/半异步进程池实现 / 289
15.4 用进程池实现的简单cgi服务器 / 298
15.5 半同步/半反应堆线程池实现 / 301
15.6 用线程池实现的简单web服务器 / 304
进程池(线程)中的所有子进程都运行着相同的代码,并具有相同的属性(比如优先级、PGID)。因为进程池在服务器启动之初就创建好了,所以每个子进程都相对“干净”。他们没有打开不必要的文件描述符,也不会错误的使用大块堆内存
新任务到来时,主进程将通过某种方式选择进程池中某一子进程来为之服务,主进程选择哪个子进程来为新任务服务有两种方式:
主进程使用某种算法来主动选择子进程(随机算法,轮流算法)
主进程和所有子进程通过一个共享的工作队列来同步,子进程都睡眠在该工作队列上
监听socket,连接socket
半同步/半反应堆模式:主进程统一管理这两种socket
高效的半同步/半异步模式和领导/追随者模式:主进程管理监听socket,子进程管理属于自己连接的socket
四个例子:
15.3 半同步/半异步进程池实现 / 289
15.4 用进程池实现的简单cgi服务器 / 298
15.5 半同步/半反应堆线程池实现 / 301
15.6 用线程池实现的简单web服务器 / 304
相关文章推荐
- word2vec
- C#做界面果然比C++方便
- 可怕的注入工具sqlmap
- cordova入门——cordova环境配置
- Dubbo入门实例--转载
- 人脸识别资料整理
- Webdriver自动化测试使用Xpath-Helper调试页面元素的xpath
- Android已安装了存在签名冲突的同名数据包
- 网页Adobe Reader ActiveX控件的说明文档
- JavaWeb学习(八)---HttpServletResponse对象(二)
- [mysql]当mysql查询语句查询的结果为空时,返回query结果是什么类型的呢?
- opencl初探-sobel检测
- CSS_css sprite原理优缺点及使用
- Android 问题 - Binary XML file line #36: Error inflating class android.support.v7.widget.RecyclerVie
- this.options在chrome浏览器提示undefined的解决办法
- codeforces 580D. Kefa and Dishes
- Linux 更改mac 地址
- Spring MVC学习总结(4)——SpringMVC权限管理
- Spring MVC学习总结(4)——SpringMVC权限管理
- Spring MVC学习总结(4)——SpringMVC权限管理