java非阻塞通信学习
来源:互联网 发布:大麦盒子dm1016网络锁 编辑:程序博客网 时间:2024/05/22 07:03
java非阻塞通信思想按照书上说的来讲,就是你在烧开水也在做饭,不用找两个人去完成这两件事情。一个人完成这两件事就行了,这个人不停的看水是否烧开,饭是否做好
一旦其中某个事情发生就做相应的处理。生活例子读起来很简单,百度了很久也没有找到非阻塞通信的和阻塞通信比较的优缺点,可能由于非阻塞通信是JSE1.4以后出现的原因吧。
非阻塞通信相对阻塞通信来说要复杂很多,其中要进行非阻塞通信编程必须要会使用几个类:
1,Buffer,缓存区类:ByteBuffer,CharBuffer...
2,Charset,字符编码类
3,SelectableChannel通道类,主要有两个子类,ServerSocketChannel和SocketChannel,在非阻塞通信中所有数据的收发都是通过Buffer,虽然这两个类的方法read和write都是向通道Channel直接写入和读取数据;还有一点就是这两个类默认都是阻塞模式,需要手动设置为非阻塞模式,调用他们的configureBlocking(false)即可
4,Selector类,在阻塞通信中式依靠事件驱动的,ServerSocketChannel和SocketChannel都要向Selector注册相应的事件后才能够被处理;Selector维护了三个集合,all-keys,selected-keys,canclled-keys他们都是事件的集合,事件句柄SelectionKey的集合
5,SelectionKey类,ServerSocketChannel和SocketChannel向Selector注册的事件句柄
0 0
- java非阻塞通信学习
- java 非阻塞通信
- java非阻塞通信
- java 非阻塞通信
- java 非阻塞通信
- java 非阻塞通信
- Java 非阻塞 socket 通信
- Java NIO-非阻塞通信
- Java NIO-非阻塞通信
- Java网络编程学习笔记(4)非阻塞通信
- Java网络编程学习笔记(4)非阻塞通信
- 用Java实现非阻塞通信
- 用Java实现非阻塞通信
- 用Java实现非阻塞通信
- 用Java实现非阻塞通信
- Java简单实现Socket非阻塞通信
- Java简单实现Socket非阻塞通信
- java 非阻塞通信的例子
- 颇不宁静,仔仔细细写下第一篇博文
- vmware 虚拟机mac xcode cannot run using the selected destination
- POJ1384-PiggyBank
- 关于无盘工作站的初步了解(RPL/PXE)
- extjs 数字校园-云资源平台 2014.3.1-远程教育平台
- java非阻塞通信学习
- Xamarin Mono For Android 4.6.07004 完整离线安装破解版(C#开发Android、IOS工具)
- zoj 3609 ( Modular Inverse)
- MFx Patcher 4.10.1 最新破解补丁下载(Xamarin Mono For Android 4.10.01068 破解补丁)
- 别墨迹
- sql常用+sql优化方面总结
- 求数组的子数组之和的最大值
- linux的system () 函数
- android布局之listview