2011-9-17 13:16:20
来源:互联网 发布:淘宝电商运营试题 编辑:程序博客网 时间:2024/03/29 20:20
2011-9-17 13:16:20
对于Android的网络通讯性能的提高,我们可以使用Java上高性能的NIO (New I/O) 技术进行处理,NIO是从JDK 1.4开始引入的,NIO的N我们可以理解为Noblocking即非阻塞的意思
,相对应传统的I/O,比如Socket的accpet()、read()这些方法而言都是阻塞的。
NIO主要使用了Channel和Selector来实现,Java的Selector类似Winsock的Select模式,是一种基于事件驱动的,整个处理方法使用了轮训的状态机
,如果你过去开发过Symbian应用的话这种方式有点像活动对象,好处就是单线程更节省系统开销,NIO的好处可以很好的处理并发,对
对于多点Socket连接而言使用NIO可以大大减少线程使用,降低了线程死锁的概率,毕竟手机游戏有UI线程,音乐线程,网络线程,管理的难度可想而知,
同时I/O这种低速设备将影响游戏的体验。
NIO作为一种中高负载的I/O模型,相对于传统的BIO (Blocking I/O)来说有了很大的提高,处理并发不用太多的线程,省去了创建销毁的时间,
如果线程过多调度是问题,同时很多线程可能处于空闲状态,大大浪费了CPU时间,同时过多的线程可能是性能大幅下降,
一般的解决方案中可能使用线程池来管理调度但这种方法治标不治本。使用NIO可以使并发的效率大大提高。当然NIO和JDK 7中的AIO还存在一些区别,
AIO作为一种更新的当然这是对于Java而言,如果你开发过Winsock服务器,那么IOCP这样的I/O完成端口可以解决更高级的负载,
NIO在Android中有哪些用处。
NIO我们分为几个类型分别描述,作为Java的特性之一,我们需要了解一些新的概念,比如ByteBuffer类,Channel,SocketChannel,ServerSocketChannel,Selector和SelectionKey
。有关具体的使用,Android开发网将在明天详细讲解。网友可以在Android SDK文档中看下java.nio和java.nio.channels两个包了解。
- 2011-9-17 13:16:20
- 2011-9-17 13:30:16
- 2011-9-17 13:01:57
- 2011-9-17 13:24:34
- 2011-9-17 13:39:38
- 2011-9-17 13:48:42
- 2011-9-17 13:48:42
- 2011-9-25 16:13:41
- 2011-9-17 21:20:56
- 2011-9-26 20:17:28
- 2011-9-16 20:52:15
- 2011-9-16 jdbc
- EffectiveC++ 11 13 16 17
- 2011-8-13 16:13:41
- 2011-9-17 17:22:00
- 2011-9-17 17:59:04
- 2011-9-13 函数总结
- 2011-8-8 20:16:16
- 将大写字母转换为小写字母
- JS 提示框
- java之服务提供者框架
- C语言中与时间有关的函数和操作
- Android中的log
- 2011-9-17 13:16:20
- 什么是VGA,QVGA,SVGA,XGA?
- IBM AIX 入门培训
- struts2+hibernate+spring整合各个相关的配置文件
- 可持续发展的程序设计
- 简明Vim练级攻略
- 把wince设备的ram 文件系统换成rom 文件系统,实现cab 等安装文件的永久保存,和mobile 一样。
- Java中四种XML解析技术
- PC_Lint