关于Nio的疑问

来源:7-15 总结

Netty0

2019-06-27

众所周知,Nio使用了select来进行多路复用,因为他可以做到底层非阻塞式的询问channel是否有事件产生

  1. 想问一下具体底层是如何做到询问一下可以马上返回的呢?
  2. 在底层channel读byte的时候nio也可以做到立即返回非阻塞,想问一下这又是什么原理呢?

感谢回答^^

写回答

1回答

闪电侠

2019-06-29

  1. 底层使用的是epoll模型,操作系统支持的,详细的需要了解一下 epoll 的原理,这个百度一下会有很多资料的哈;

  2. 这个是因为读byte的时候,不是直接从tcp缓冲区去读(这样的话线程会一直等待数据的产生),而是直接在系统另外开辟了一块缓冲区,直接从缓冲区里读的,没有数据就立即返回,不会等待

1
1
Netty0
非常感谢!
2019-07-01
共1条回复

Java读源码之Netty深入剖析

解析netty各大组件细节,百万级性能调优,设计模式实际运用

2334 学习 · 283 问题

查看课程