说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android开发进阶之NIO非阻塞包(一)

HTML文档下载 WORD文档下载 PDF文档下载
Android开发进阶之NIO非阻塞包(一)

作者:Android开发网


  对于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的好处可以很好的处理并发,对于Android网游开发来说比较关键,对于多点Socket连接而言使用NIO可以大大减少线程使用,降低了线程死锁的概率,毕竟手机游戏有UI线程,音乐线程,网络线程,管理的难度可想而知,同时I/O这种低速设备将影响游戏的体验。

  NIO作为一种中高负载的I/O模型,相对于传统的BIO (Blocking I/O)来说有了很大的提高,处理并发不用太多的线程,省去了创建销毁的时间,如果线程过多调度是问题,同时很多线程可能处于空闲状态,大大浪费了CPU时间,同时过多的线程可能是性能大幅下降,一般的解决方案中可能使用线程池来管理调度但这种方法治标不治本。使用NIO可以使并发的效率大大提高。当然NIO和JDK 7中的AIO还存在一些区别,AIO作为一种更新的当然这是对于Java而言,如果你开发过Winsock服务器,那么IOCP这样的I/O完成端口可以解决更高级的负载,当然了今天Android123主要给大家讲解下为什么使用NIO在Android中有哪些用处。

   NIO我们分为几个类型分别描述,作为Java的特性之一,我们需要了解一些新的概念,比如ByteBuffer类,Channel,SocketChannel,ServerSocketChannel,Selector和SelectionKey。有关具体的使用,Android开发网将在明天详细讲解。网友可以在Android SDK文档中看下java.nio和java.nio.channels两个包了解。

InMobi杨娟:中国移动游戏如何挑战全球? Adobe再遭APT攻击:数十G源代码及290万用户信息失窃 程序员,如何在工作中崭露头角? 国内外三个不同领域巨头分享的Redis实战经验及使用场景 这是一场潜在的战争:谷歌与Facebook、苹果在搜索上的博弈 开机显示问题 如何用文件系统实现类似数据库的功能? 低级问题,进来要几分吧!! 请高手帮小弟 初学linux 明明建立了一个目录,为什么提示没有哪个文件或目录 如何将打开的浏览器实例与TCppBrowser联系在一起? 如何找到app的open事件??????? 在线等你,帮我我给分,在线等待送分。 今天去找工作,郁闷,散分! 一批大米,卖出320千克,剩下的比原来总数的5/7 一批大米卖出320千克,剩下的比原来总数的7分之5 一批大米,卖出320千克,剩下的比原来总数的七分之 食堂有一些大米,用去五分之二后,有运来120千克, 食堂运来一些大米,第一周用去二分之一吨,第二周用去 食堂运来一批大米第一周吃了总量的三分之一第二周吃了 一批大米,卖出320千克,剩下的比原来总数的7/5 一批大米,卖出320千克,剩下的比原来总数的七分之 一批大米,卖出320千克,剩下的比 原来总数的7分 北京一精神病患者扎伤4名护士 其他护加拿大暴风雨30多万人受影响加拿大暴风雨30多万人受影响加拿大少数族裔报纸陷入财政困境洛杉矶机场枪击案嫌犯或因被辞退报复社我和闺蜜的三亚之行,享受漫生活乐趣美呆!航拍成都双遗马拉松赛道图先睹为一名中国公民在布鲁塞尔恐怖袭击事件中迷或事实 ? 在日本生活的真相男人千万不能乱补肾这个天使有点衰:犯上冷血总裁筹码婚姻:腹黑老公冷娇妻情界巨洞:色钱权大博弈冤家宜结不易解:大嫁光临沙坡头旅游宁波旅游壶口瀑布旅游郑州旅游日照旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘