網絡Io实现方式
来源:互联网 发布:山东大学威海知乎 编辑:程序博客网 时间:2024/06/14 04:44
我们在实践中接触最多的网络模型是以太网以及TCP/IP协议栈,UDP在一些场景中也会用到,那么当我们使用Socket 套接字进行网络通信开发时,下面介绍会用到的三种方式。
一:BIO方式
BIO即BlockingIO ,采用阻塞的方式实现,也就是一个Socket套接字需要使用一个线程来进行处理。发生建立连接、读数据、写数据、的操作时,都可能会阻塞。这个模式的好处是简单,这样带来的问题是一个线程只处理一个Socket,如果是Server端,在遇到支持并发的连接时,就需要更多的线程来完成这个工作,BIO的工作方式图下图
二":NIO方式
NIO即NonblockingIO,基于时间驱动思想,采用的是Reactor模式,如下图。这个在Java实现的服务端中也是采用比较多的一种方式。相对于BIO,NIO的一个明显好处就是不需要为每一个Socket套接字分配一个线程,而可以在一个线程中处理多个Socket套接字相关的工作。
Reactor 会管理所有的handler ,并且把出现的事件,交给相应的Handler 去处理。通过Reactor 对所有客户端的Scoket 套接字的事件 做处理,然后派发到不同的线程中。这样就解决了BIO 中卫支撑更多的Socket 套接字而需要打开更多的线程的问题。
如下图
3 AIO方式后续再写吧。
对技术感兴趣的朋友请加入qq 群:631294108.
阅读全文
0 0
- 網絡Io实现方式
- IO // NIO 实现方式比较
- 网络IO的实现方式
- 网络IO的java实现方式
- gec210 i2c程序io模拟方式实现
- MSP430利用IO中断方式来实现按键检测
- 操作系统,网上课件+IO实现四种方式。
- Windows 异步IO的几种实现方式
- 多路复用IO实现方式:select,poll,epoll的区别
- Java中网络IO的实现方式-BIO、NIO、AIO
- IO流_三种方式实现键盘录入
- Windows 异步IO的几种实现方式
- IO流:复制文本文件的5种方式实现
- IO流:复制图片的四种方式实现
- java网络IO的三种实现方式
- io隔离方式----watchdog
- 操作系统io方式
- 各种IO方式
- VINS mono 系统学习 二
- 二叉树遍历的非递归算法
- .WebDelegatingSubject cannot be cast to cn.itcast.bos.domain.system.User
- 开启博客生涯的第一天
- java面向对象的概念总结
- 網絡Io实现方式
- 阿里云技术教程系列-ECS使用须知
- 插入排序—直接插入排序
- Ubuntu系统中安装Java环境
- webpack+react+node采坑之旅 (上)
- python os.path模块
- 八、java项目常用工具类之卡号,手机号隐藏工具类
- 2017-11.11 最初的一步
- HDU3065-病毒侵袭持续中