Netty基础------ BIO(同步阻塞IO)
目录
1、什么是BIO
- Java BIo就是传统的 java io编程,其相关的类和接口在 java.io
- BlO( blocking I/O):同步阻塞,我们熟知的Socket编程就是BIO,每个请求对应一个线程去处理。一个socket连接一个处理线程(这个线程负责这个Socket连接的一系列数据传输操作)。阻塞的原因在于:操作系统允许的线程数量是有限的,多个socket申请与服务端建立连接时,服务端不能提供相应数量的处理线程,没有分配到处理线程的连接就会阻塞等待或被拒绝。
- BO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,程序简单易理解。
2、BIO的工作机制
对BO编程流程的梳理:
- 服务器端启动一个 ServerSocket
- 客户端启动 Socket对服务器进行通信,默认情况下服务器端需要对每个客户建立一个线程与之通讯
- 客户端发出请求后,先咨询服务器是否有线程响应,如果没有则会等待,或者被拒绝
- 如果有响应,客户端线程会等待请求结束后,在继续执行
针对上面的情况,我们可以使用线程池进行一定