>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 22960 个阅读者 刷新本主题
 * 贴子主题:  套接字通信: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面向对象编程-->Swing组件(上)
  JavaWeb开发-->Java语言的基本语法和规范
  JSP与Hibernate开发-->Web运作原理(Ⅲ)
  Java网络编程-->Web运作原理(Ⅳ)
  精通Spring-->使用JPA和注解
  Vue3开发-->映射对象标识符
  《漫画Java编程》勘误及建议
  Java函数式接口和Stream流
  面向对象的七大原则,你知道几个?
  java.util.logging.Logger使用详解
  Java的对象的拷贝方式集合
  BST 二叉搜索树
  深入研究java.lang.ThreadLocal类
  面试必考-static、final和单例模式
  volatile 与 synchronized 详解
  Java入门实用代码:将文件内容复制到另一个文件
  Java入门实用代码:格式化时间(SimpleDateFormat)
  史上最全正则表达式合集(马上收藏)
  JAVA设计模式之备忘录模式原理与用法详解
  Java中的main()方法详解
  native2ascii.exe 的Java实现类
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 kericnnoe 
威望: 未知
级别: 未知
魅力: 未知
经验: 未知
现金: 未知
发文章数: 未知
注册时间: 未知
 复制  引用


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

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


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