多线程实现并发TCP服务器课件.ppt
《多线程实现并发TCP服务器课件.ppt》由会员分享,可在线阅读,更多相关《多线程实现并发TCP服务器课件.ppt(25页珍藏版)》请在三一办公上搜索。
1、彭 丹,多线程并发服务器,知识点回顾,1. 多线程2. Socket,1. 多线程,1. 概念 线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。2. 共享资源 一个进程的所有线程共享进程的地址空间和全局变量3. 函数 intpthread_create(pthread_t*tidp,constpthread_attr_t*attr,(void*)(*start_rtn)(void*),void*arg); 编译链接参数-pthread,2.Socket,建立TCP连接流程,代码演示1TCP-简单收发,本章知识点,1.并发 2. Linux下tcp并发
2、服务器的几种设计模式3.阻塞4. 如何实现client和server实时收发数据5. 如何实现TCP server同时和多个客户端相连6. 如何实现TCP多个客户端互相通信,1. 并发,概念 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这种方式我们称之为并发(Concurrent)。,3. Linux下tcp并发服务器的几种设计模式,多进程模式 accept返回成功时候,就为这一个连接fork一个进程,专门处理这个连接上的数据收
3、发,等这个连接处理结束之后就结束这个进程。 优点: 编程相对简单,不用考虑线程间的数据同步等。 缺点: 资源消耗大。启动一个进程消耗相对比启动一个线程要消耗大很多,同时在处理很多的连接时候需要启动很多的进程多去处理,这时候对系统来说压力就会比较大。另外系统的进程数限制也需要考虑。 应用: 在客户端数据不多的时候使用很方便,比如小于10个客户端。,Linux下tcp并发服务器的几种设计的模式,多线程模式 类似多进程方式,但是针对一个连接启动一个线程。 优点: 相对多进程方式,会节约一些资源,会更加高效一些。 缺点: 相对多进程方式,增加了编程的复杂度,因为需要考虑数据同步和锁保护。另外一个进程中
4、不能启动太多的线程。在Linux系统下线程在系统内部其实就是进程,线程调度按照进程调度的方式去执行的。 应用: 类似于多进程方式,适用于少量的客户端的时候。,Linux下tcp并发服务器的几种设计的模式,select + 多线程 模式 有一个线程专门用于监听端口,accept返回之后就把这个描述符放入 描述符集合 fd中,一个线程用select去轮训描述符集合,在有数据的连接上接收数据,另外一个线程专门发送数据。当然也可以接收和发送用一个线程。描述符可以设置成非阻塞模式,也可以设置成阻塞模式。通常连接设置成非阻塞模式,发送线程独立出来。 优点: 相对前几种模式,这种模式大大提高了并发量。 缺点
5、: 系统一般实现描述符集合是采用一个大数组,每次调用select的时候都会轮询这个描述符数组,当连接数很多的时候就会导致效率下降。连接数在1000以上时候效率会下降到不能接受。应用: 目前windows 和一般的Unix上的tcp并发都采用select方式,应该说应用还是很广泛的。,Linux下tcp并发服务器的几种设计的模式,epoll方式 在Linux2.6版本之后,增加了epoll。具体的使用是:一个线程专门进行端口监听,accept接收到连接的时候,把该连接设置成非阻塞模式,把epoll事件设置成边缘触发方式,加入到epoll管理。接收线程阻塞在epoll的等待事件函数。另外一个线程专
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多线程 实现 并发 TCP 服务器 课件

链接地址:https://www.31ppt.com/p-1485504.html