我之前做过linux下c的服务器开发,比较熟悉epoll、select、poll,kqueue等技术。最近在学习java服务器开发,遇到好多概念,有些混淆。
1、java中NIO是非阻塞IO,NIO的实现有selector和epoll,这里的epoll和linux C中的epoll一样么?是同一个概念么?
2、linux c 下epoll本质也还是同步IO,那么linux c下面有没有那些类似java nio这样的技术方案?
主要是两边概念有点混乱,希望能对比着学习。
1:如果内核版本>=2.6
则,java中具体的SelectorProvider
为EPollSelectorProvider
否则为默认的PollSelectorProvider
.
2: 我认为epoll
不能用语言来区分,可以通过平台
区分,比如只有Linux下有epoll,这在哪肯定是一个概念。
3:同步和异步就看通知你的是什么事件:同步通知你的是就绪事件,异步是完成事件,都需要你自己用代码实现相应的逻辑的。