>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 14233 个阅读者 刷新本主题
 * 贴子主题:  套接字通信:select、poll、epoll的区别 回复文章 点赞(0)  收藏  
作者:Jacky    发表时间:2021-06-24 10:06:30     消息  查看  搜索  好友  邮件  复制  引用

        

核心对比

   Select:主动询问模式,用户态切换到内核态,内核态如果读取到数据的情况下,则从内核态拷贝数据到用户态。

epoll:事件回调方式,内核态如果读取到数据的情况下,内核态将拷贝到用户态,可以避免用户态与内核态的切换耗时。

对比详情

对比项 Select Poll Epoll【事件驱动的poll】
文件描述 默认最大连接数1024,可自定义 使用链表实现,无最大连接数 有上限,但很大。1G内存机器可以打开10W链接
Socket方式 一个个轮询,socket增多则性能下降,还 存在空轮训,时间复杂度O(n) 稍微优化,但机制相同,时间复杂度O(n) 使用callback函数实现,只有活跃的socket才会调动callback,时间复杂度O(1)
内存空间拷贝(消息传递方式) 内核态拷贝到用户态非常耗时 和select相同 内存态和用户态共享内存,不存在拷贝
其他 支持跨平台,对文件描述符有限制 无文件描述符限制


           点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

    
----------------------------
原文链接:https://www.jianshu.com/p/2917793b2705

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2021-08-30 22:13:49 重新编辑]
  Java面向对象编程-->数组
  JavaWeb开发-->JSP技术详解(Ⅰ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->Vue组件开发基础
  Vue3开发-->创建综合购物网站应用
  [分享]遊藝場開分員會很難嗎?原來工作項目是這些!
  Java虚拟机进行类连接的原理
  Java集合框架学习---深入探究ArrayList源码
  BIO模型的缺陷
  Java 语言中十大“坑爹”功能!
  内部类的种类和用法
  深入研究java.lang.ThreadLocal类
  Java设计模式:状态模式
  Java虚拟机(JVM)的内存结构
  Java入门实用代码:线程状态监测
  Java入门实用代码: 集合中添加元素
  Java入门实用代码:List 循环移动元素
  史上最全正则表达式合集(马上收藏)
  正则表达式【匹配非字母和数字】
  java使用gzip实现文件解压缩示例
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 kericnnoe 
威望: 未知
级别: 未知
魅力: 未知
经验: 未知
现金: 未知
发文章数: 未知
注册时间: 未知
 复制  引用


歐博百家樂是一間合法註冊的娛樂公司,提供包含真人娛樂、龍虎鬥、牛牛百家樂、輪盤、骰寶等多元的線上博弈遊戲,並擁有最完整的博弈系統

歐博百家樂是一間合法註冊的娛樂公司
发文章时间 2023-03-07 00:26:56
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。