需要有一定的BIO和NIO的基础和经验,方可读懂本文章
笔者懒,其中奥秘需自行领悟
-
编译.java文件
-
追踪并运行此文件,可以看到调用 操作系统的具体执行函数
-
有一个客户端连接后看看输出的日志
4.查看Main线程的日志
最终总结(epoll)
- 每次一开始先在操作系统里面开辟一个内核空间,用于存储需要监听的fd
- 在Java中向select.register()注册,就相当于向此内核空间里面存贮 对应的fd
- select.select() 就是操作系统的wait,等待看看哪些事件发生,返回对应的fd集合
poll中是通过轮询的方式看哪些事件是否发生,而epoll则是通过事件驱动的方式来监听事件是否发生,因此epoll效率会更高些
https://blog.csdn.net/wteruiycbqqvwt/article/details/90299610 (深入理解select、poll和epoll及区别)