epoll技术简介
//(2.1)epoll概述
//(1)I/O多路复用:epoll就是一种典型的I/O多路复用技术:epoll技术的最大特点是支持高并发;
//传统多路复用技术select,poll,在并发量达到1000-2000,性能就会明显下降;
//epoll,kquene(freebsd)
//epoll,从linux内核2.6引入的,2.6之前是没有的;
//(2)epoll和kquene技术类似:单独一台计算机支撑少则数万,多则数十上百万并发连接的核心技术;
//epoll技术完全没有这种性能会随着并发量提高而出现明显下降的问题。但是并发没增加一个,必定要消耗一定的内存去保存这个连接相关的数据;
//并发量总还是有限制的,不可能是无限的;
//(3)10万个连接同一时刻,可能只有几十上百个客户端给你发送数据,epoll只处理这几十上百个客户端;
//(4)很多服务器程序用多进程,每一个进程对应一个连接;也有用多线程做的,每一个线程对应 一个连接;
//epoll事件驱动机制,在单独的进程或者单独的线程里运行,收集/处理事件;没有进程/线程之间切换的消耗,高效
//(5)适合高并发,融合epoll技术到项目中,作为大家将来从事服务器开发工作的立身之本;
//写小demo非常简单,难度只有1-10,但是要把epoll技术融合到商业的环境中,那么难度就会骤然增加10倍;
学习epoll要达到的效果及一些说明
//(1)理解epoll的工作原理;面试考epoll技术的工作原理;
//(2)开始写代码
//(3)认可nginx epoll部分源码;并且能复用的尽量复用;
三:epoll原理与函数介绍:三个函数,理解好就等于掌握了epoll技术的工作原理,以下内容务必认真理解。
掌握这个三个函数的使用,并结合网上一些大神关于如何自己实现这个三个函数的源码分析,epoll的三个关键函数都干了什么。
大神源码:
//https://github.com/wangbojing
//a)c1000k_test这里,测试百万并发的一些测试程序;一般以main();
//b)ntytcp:nty_epoll_inner.h,nty_epoll_rb.c
//epoll_create();
//epoll_ctl();
//epoll_wait();
//epoll_event_callback();
//c)总结:建议学习完老师的epoll实战代码之后,再来学习 这里提到的课件代码,事半功


2327

被折叠的 条评论
为什么被折叠?



