高性能服务器编程-线程池
来源:互联网 发布:mac 8081端口被占用 编辑:程序博客网 时间:2024/05/17 06:20
之前介绍了两种高性能服务器编程,今天介绍第三种-线程池。
一、概念
1、为什么要有池?
多线程如果存在客户端链接,创建一个函数线程,客户端关闭,释放线程,服务器大多时间消耗在创建线程,释放线程。这样对于业务的处理时间就会大大减少,所以引入了池来解决问题。
2、池:初始时,申请比刚开始要使用的资源大的多的资源空间,接下来使用时,直接从池中获取资源。
3、线程池:在服务器运行开始时,创建N个线程,将这N个线程用池管理起来,当有用户链接时,从线程池中选取一个线程为其服务,客户端关闭链接后,服务器又将该线程放回到线程池中,线程池中的所有线程到最后一起处理。
二、线程池的实现
1、示例
(1)主线程先创建3条函数线程
(2)主线程等待客户链接,3条函数线程执行P操作二阻塞运行
(3)主线程接收客户链接后,通过信号量的V操作通知一个函数线程和客户端进行通信
2、主线程如何将获得的文件描述符传递给函数线程?
全局数组作为等待函数线程处理的文件描述符的等待队列
3、原理
4、源代码
(1)服务器
(2)客户端
5、测试
(1)客户端
如下图所示,共创建了三个函数线程
(2)服务器
在服务器端显示的结果可以明显看出是有三个客户端,分别是4 、5 、6
阅读全文
0 0
- 高性能服务器编程-线程池
- Linux高性能服务器编程--线程池
- Linux高性能服务器编程——进程池和线程池
- Linux高性能服务器编程——进程池和线程池
- Linux高性能服务器编程——进程池和线程池
- linux高性能服务器编程之线程池和进程池实现(待完成)
- Linux高性能服务器编程——进程池和线程池
- 高性能服务器编程半同步/半反应堆的线程池模板
- 高性能Socket服务器编程
- Linux高性能服务器编程
- Linux高性能服务器编程
- 高性能服务器编程感悟
- Linux高性能服务器编程:进程池和线程池原理及应用(有图有代码有真相!!!)
- 高性能服务器编程网上资料备份
- 高性能服务器编程中的定时器
- 高性能Socket服务器编程-01
- 高性能Socket服务器编程-02
- 高性能服务器编程中的定时器
- python3中,socket使用send函数时出现的错误:TypeError: a bytes-like object is required, not 'str'
- 个性化推荐系统(三)---推荐系统意义一点思考
- android studio framework.jar
- 怎样一条SQL语句统计该年每月的数据个数
- EM(期望最大算法)在高斯混合模型中的python实现
- 高性能服务器编程-线程池
- 【ML】在梯度下降法中,误差函数是局部最小如何处理
- ajax回调json数据遍历取出数据
- 中断-中断的种类
- Mac配置环境变量的地方
- 数据库视频之三大服务
- Infinera将数据中心的互联能力扩展了两倍
- ccf第三题,需用的小方法
- MVP框架设计详解