epoll是当今linux服务器采用的一种方式 ,它是一种单进程、单线程的高并发服务器
在操作系统中启动服务器,服务器就会有一个监听客户端连接的套接字,每有一个客户端连接服务器,就会向套接字列表中添加一个客户端套接字,此时加上服务器本身的监听套接字,目前列表中有两个套接字,当有别的客户端再连接时,继续往列表中加套接字。应用程序有一份自己的内存空间,操作系统也有一份自己的内存空间,彼此之间相互隔离。linux操作系统的核心是kernel,当系统去遍历套接字列表时,就是把列表中套接字的Fd(文件描述符)复制一份给kernel,当列表比较大时,就会耗费过多的时间,(这个从第一个遍历到最后一个循环往复的过程叫轮询)这样导致效率不太高。
epoll的优势就在于1.它内部有一个特殊的内存空间,这个特殊的内存空间不属于程序也不属于内核,是它们两个共有的,这样就减少了一个复制的过程。2.为了进一步提升效率,epoll不采用轮询而采用一种效率更高的方式:事件通知,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了,
Nginx(性能优异)、 Apche(稳定优异)是当今世界很出名的两大服务器
网友评论