NIO底层原理-epoll

BIO模型存在三个socket:

ServerSocket:专门用来监听是否有来自客户端的连接
accept返回的Socket:专门用于处理客户端请求的socket
Socket:客户端的socket

BIO由于accpet和read会阻塞,如果不使用多线程,read时候的阻塞会导致无法立即处理下一个客户端的连接。

如果使用多线程,如果某些线程不活跃,可能浪费CPU资源。

NIO可以设置通过configureBlocking设置accept为非阻塞的,对应操作系统五种IO模型介绍中的非阻塞IO模型。

NIO在感知各个连接的读写状态是通过操作系统内核轮询实现的。对应操作系统五种IO模型介绍中的多路复用IO模型。

在linux中,性能会更高一些,linux内核通过内核函数epoll实现被动感知,能有效解决多个连接不活跃的问题。

epoll的原理:

epoll原理详解及epoll反应堆模型_青萍之末的博客-CSDN博客

Epoll原理解析_ LINUX -CSDN博客

彻底搞懂epoll高效运行的原理

(就这样水了一篇博客)

原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/nio%e5%ba%95%e5%b1%82%e5%8e%9f%e7%90%86-epoll/

(0)
彭晨涛彭晨涛管理者
上一篇 2020年2月12日
下一篇 2020年2月13日

相关推荐

  • String s = new String("123");创建了几个String对象?

    提要 最近复习看到一道题目很有意思啊: String s = new String("123"); 问这样一行代码创建了几个String对象? 乍一看我其实以为和JDK的版本有关系…

    Java 2020年5月24日
    0580
  • JUC包下的信号量Semaphore

    概述 信号量,用来限制能同时访问共享资源的线程上限。 public static void main(String[] args) { // 1. 创建 semaphore 对象 …

    Java 2020年2月6日
    0200
  • Collection接口研究

    以下内容基于jdk1.8 接口Collection分析 img 该接口实现了接口Iterable 方法: int size(); 返回元素的个数 boolean isEmpty()…

    2019年11月13日
    0100
  • 谈谈Java中的Iterator

    摘要 Iterator的作用? Iterator和Enumeration的区别? Iterator和ListIterator的区别? Iterator和foreach的关联? It…

    Java 2019年12月6日
    0180
  • Java基础查缺补漏02

    哈哈我其实没有想到这个系列真会有续集,上次写完01以后以为不会再写下去了,没想到最近牛客网刷题有些题目还是挺纠结的,这里补一补 构造器能带哪些修饰符 题目: Which of th…

    Java 2020年5月25日
    080
  • try-catch-finally字节码实例探究

    本文使用Idea的jclasslib插件查看字节码。本文全程自言自语,请勿自行代入。 概述 java是怎么处理try-catch-finally的? 我们在深入理解java虚拟机第…

    2020年4月8日
    0720
  • LinkedHashMap源码分析

    总结 总结放前面防止太长不看: LinkedHashMap继承自HashMap,为Entry额外维护了两个属性:before和after,可以按照节点的插入顺序或者访问顺序为Ent…

    Java 2020年2月19日
    0550
  • Java自动装箱缓存机制

    尝试运行这段代码: 相似的两段代码,得到的结果却完全不相同。 首先要知道在java中==比较的是对象的引用,从直觉出发,无论是integer1、integer2还是integer3…

    Java 2019年12月5日
    0140
  • 深入理解java虚拟机第三版读书笔记10

    以下是第十章 前端编译与优化的内容 Java中的编译可能是指: 前端编译:把*.java文件转变成*.class文件的过程 即时编译(JIT):运行期把字节码转变成…

    Java 2020年1月25日
    0130
  • Java中的四种内部类

    我发现最近真是越来越没有东西写了。。。不可能天天学习新知识啊,最近在复习阶段了,复习的东西大多数是博客里写过的/(ㄒoㄒ)/ 复习Java基础的时候认真看了一下Java的内部类,这…

    Java 2020年5月23日
    0100

发表回复

登录后才能评论