《网络编程nio的原理》听课笔记
2019, Jun 11
BIO->NIO why?(非多线程时,BIO无法实现并发。实现并发必须使用多线程,一个请求一个线程。
缺点:但是并不是所有的请求都进行通信数据)
对服务器端来说,如果不活跃的线程比较多,就应该首先考虑单线程
目录:
- jni调用过程
- openJDK源码
- linux网络编程的函数
netty ->对nio的一个封装
BIO 3个Socket: 一个监听的,监听到请求accept产生出来的socket,以及客户端的一个socket
两个阻塞
-
accept() 阻塞连接
-
read() 阻塞数据
NIO解释 nonlocking io/new IO
轮询数据交给操作系统
epoll:当有数据来时 ,告诉你 是哪个socket的数据。
数据感知的具体实现:不同平台不一样