美文网首页
NIO处理网络通信的过程简介

NIO处理网络通信的过程简介

作者: 屎倒淋头还嚼便 | 来源:发表于2019-04-21 19:51 被阅读0次

    大概描述,不一定准确

    出自:https://www.jianshu.com/p/a4e03835921a

    NIO模型中通常会有两个线程,每个线程绑定一个轮询器selector,在我们这个例子中serverSelector负责轮询是否有新的连接,clientSelector负责轮询连接是否有数据可读

    一旦查看到有新的连接,就把它(应该是连接信息,大概包括连接者的ip、端口,和消息等等)交给clientSelector,由其处理数据(会把接收到的数据放到一个缓存区中)

    疑问:

    1、aio会为每一个连接创建一个线程来处理数据,线程过多的话,会增加过多开销。那么该线程等待接收数据时,也是轮询端口是否接收到数据了吗?端口接收到数据后,不是应该给cpu发中断消息,然后让其来处理吗?

    可以先找一个aio网络通信的例子看看,再百度下aio原理

    2、NIO发现连接,必须使用轮询吗?有新连接建立后,那个端口不会发送中断通知cpu吗?

    轮询有间隔吗?没有间隔会产生空转造成cpu100%吗?有间隔的话,线程按毫秒频繁切换,会增加多大的开销

    相关文章

      网友评论

          本文标题:NIO处理网络通信的过程简介

          本文链接:https://www.haomeiwen.com/subject/bhnjgqtx.html