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

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两个包了解。

Maker Faire上的微软:将技术与工具带给Maker才是关键 友盟2015年Q1移动互联网报告:车联网App崛起 多面编程语言Scala NEC高可用集群软件EXPRESSCLUSTER X3.3面向中国市场正式发布 【探秘ES6】系列专栏:模版字符串 专访图书作者祁宇:C++11让程序更简洁、更现代、更强大 滴滴打车CTO张博:生死战役,技术和时间赛跑 Qualcomm拥抱创客文化:如何基于DragonBoard 410c创造和创业? 【探秘ES6】系列专栏:剩余参数和默认参数 专访资深程序员庄晓立:我为什么要选择Rust? 主会讲师确认,2015中国人工智能大会火热报名中 容联·云通讯线下沙龙:IM 5.0助力App社交化 【CTO讲堂】全数据驱动产品优化,美国互联网公司A/B测试经验分享 《近匠》易快报:以报销做企业消费场景下的Slack 纷享销客D轮融资1亿美金,启动开放平台战略! 专访4秒源码商城CTO陈杰:扎根互联网的“不安的心” iOS UIView动画实践(一):揭开Animation的神秘面纱 【前端人生】Teambition前端工程师陈涌:非计算机专业,依托社区不断成长壮大 iOS UIView动画实践(二):Spring Animation与人机交互 基因组与数据整合:DNA应用开发正在临近 2015 PHP框架调查结果出炉,Laravel最受欢迎! 【CTO会员专访】KEEN创始人兼CEO王琦:在GeekPwn,遇见一极棒的安全人才 创业公司都在使用的3款Python库 深入理解Objective-C的Runtime机制 你不知的Docker 创办人兼CTO游走美法的浪漫狂放 《近匠》环信CEO刘俊彦:移动客服的未来化场景 iOS UIView动画实践(三):Transition Animation 【CTO讲堂】无社交,不App!——为App加载强大的通讯社交引擎 【探秘ES6】系列专栏(七):箭头函数 【前端框架】Backbone.js在大型单页面应用中的应用实践 【探秘ES6】系列专栏(六):解构赋值 我只升级主扳、CPU、硬盘、光驱,如何升级?请告诉我! 如果只做oracle DBA,那学习 PL/SQL 是否熟悉一些就行,还是必须特别精 DOS程序和WINDOWS程序串口通信问题,各位帮帮忙! 高手请回答:VB多线程互斥信号问题 用c编写bbs 多线程与clientdataset 主扳、CPU、硬盘、光驱,升级方案大比拚!!!!! 一个极菜的问题:怎么确定文档的大小? zf925(天下哪来那么多高手),你的回答我以看见了,但你的帖子贴的不全,你的原代码的例子没有, 设备管理器里面断口显示的是端口COM1和COM2,但是我的调只解调器里面的断口却是COM3和COM4,到底怎么回事呢?? :哪位大侠有多媒体方面编程的经验?请帮忙查看一下,谢谢。 DELPHI有史以来最大的难题! 二级联动菜单怎么搞啊??各位大虾救急啊!!! 请赐教 如何建立mts與com,dcom,com+通信,其中每種方式有何不同之處? 有个有关j2ee应用服务器的问题,很困惑!(急,一定给分!) 学习c和c++学要学习汇编吗????? 我先试一 下 关于得到文件的名字? 用5行代码就让系统重起的帖子怎么找不着了?谁告诉我?加分了!! 素女经 如何修改SQL数据库表中的数据 在对话框里输出文字?不要控件!!不要static 控件 一个关于打印的怪问题! 如何将数据库通过JDBC接收并将字段关键字连成一棵树(每一分支最多64节点) 救急!!!!!!!小妹我遇到一点问题! 今年就业形势“大好”! ******* 马上就给分,所以给的少了点,大家别介意 ******** 大家给点意见 请关注一个初学者的问题?我学sql但是不知未来的发展趋势!? 图形数据窗口(line 星)点太大,如何缩小 救急!!!!小妹我遇到一点问题! 用bcb制作动态网页 数据窗口 Graph 类型 line 样式 如何学c语言? Delphi中如何获的其它应用程序中的内容? 显示颜色变成只有16色和2色? DWORD 参数传递的问题。 那里有播放AVI文件的程序?谢谢! 参数传递问题!!大侠帮帮我 请帮我修改一下源代码(delphi)请帮忙改一下,让它打印了不往里(数据库)存。 BIOS设置,用电脑是不是可以当闹钟呢? 五笔输入法忽然不能用了 救就我,为什么Frame的客户区变小了?关于切分窗口 怎样查找某一个目录下一个表是否存在? 请问有用过李阳疯狂英语的朋友吗?请说说到底怎么样? 我想向各位大侠请教一个问题? 如何屏蔽TEXTBOX的回车响应? 关于《各位学习编程的目的是什么》的总结 m_pusrrcdset->m_pDatabase->ExecuteSQL("")为什么不行?老是ASSERT错误 一辆洒水车每分钟行驶200米,洒水宽度是10米,洒水车行驶15分钟能洒多少公顷? 生活中有哪几种圆柱体.嗯,一共是有三种的,而且是常见的,麻烦你帮帮忙吧,我会记住你的大恩大德的. 怎么区分小麦和稻子 一辆洒水车,每分钟行驶200米,洒水宽度是10米,洒水车直行100分钟,能洒多少公顷的地面?合多少平方千米? 举例说说生活中哪些物体的形状是圆柱体的 一块圆柱体木块竖着切成四块,表面积增48平方厘米;横着切成三块,表面积增加50.24平方厘米;削成一个最大圆锥体,体积减少了多少立方厘米? 一辆洒水车每分钟行 驶200米、洒水的宽度是10米、洒水车行驶15分钟能洒水多少公顷? 是圆柱体的物体有哪些?举4例 小麦和大米有什么区别?为什么? 一辆洒水车,每分钟行驶200米,洒水的宽度是10米.洒水车行驶100分钟,能洒多少平方千米的地面? 如果一个圆柱体与一个圆锥体的底面积和体积分别相等,则圆柱体的高是圆锥体高的() 有一根圆柱体的木料,如果底面直径竖直平均分成四块,表面积增加144平方厘米.如果平均截成4个小圆柱体,表面积会增加169.56平方厘米,这根木料原来的体积是多少? 设全集U=Z,A=(x=2k,k属于z),B=(x=2k+1,k属于z),求cuA,cuB 已知i,j是是夹角60的单位向量,向量a=2i+j,b=-3i+2j,则向量a,b的夹角为? 将一个圆柱体沿上下底面的圆心切成4块,表面积增加48平方厘米,如果将圆样切成3个小圆柱体,表面积增加50.24求圆柱的表面积 设全集U={x|x=2k,k∈Z},集合A={x=4k,k∈Z},求CuA 设向量a=3i-2j+4k,b=i+j-2k 在a,b决定的平面上 求一个与a垂直的单位向量 经济 发展 .help help我对中国近代经济发展历史感兴趣.(1000字——) 设U=Z,A={x|x=2k,k∈Z}.B={x|x=2k+1,k∈Z},求CUA,CUB 已知向量a=-i+2j b=-3i+4j 求 |a-b|= 假如大气中没有灰尘,强烈的阳光将使人无法睁开眼睛,这是灰尘的什么作用 若U=Z,A={x|x=2k,k∈Z},B={x|x=2k+1,k∈Z},则CuA= CuB=CuA等于多少 CuB等于多少 已知i.j是两个不共线向量,若AB=3i+2j,CB=i+入j,CD=-2i+3j,那么当实数入为何值时,A,B,D三点共线?解析:已知AB向量=3i+2j,CB向量=i+λj,CD=-2i+j,那么:向量BD=向量CD-向量CB=-2i+j - (i+λj)=-3i +(1-λ)j若A.B.D三点共 用颜色来描写下列:(嫩绿)的秧苗 ()的稻谷 ()的大豆 ()的玉米 判断题:圆锥体是特殊的圆柱体() i.j是两个不共线向量,已知AB向量=3i+2j,CB向量=i+λj,CD=-2i+j,若ABD三点共线,求实数λ的值. 灰尘对人类或大自然有什么好处? 已知全集U={1,2,3,4,5},集合A={x∈Z||x-3|<2},则集合CuA等于(2,3,4}B.{2,3,4}C.{1,5}D.{5}Z 小麦和水稻啥区别? 在灰尘比较多的环境下工作吃什么对身体有好处 已知集合U=R,集合A={x|y=(1-1/x)^1/2}则CuA等于_______? 稻子和麦子有什么不同 在粉尘严重的环境工作,应该吃点什么比较好呢? 已知U=[12345],集合A=[x属于Z/|x-3|<2],则集合CuA等于什么? 把一个底面半径为5厘米、厚2厘米的圆柱形月饼沿直径切成4等份,表面积增加了多少平方厘米? 我的工作环境污染有点严重,吸入的粉尘多.请问吃什么食物可以排出肺内的灰尘呀. 已知全集u={1 2 3 4 5 },集合a={1 2},b={2 3 4 },则b∩cuA等于已知全集u={1 2 3 4 5 },集合a={1 2},b={2 3 4 },则b∩cuA等于 a{2} b{3 4} c{1 4 5} d{2 3 4 5} 把一个半径是5CM 后2CM的月饼沿直径切成四等份,表面积增加多少?(附加理由和算式) 设向量a=3i+2j, b=2i-j,求(1/3a-b)-(a-2/3b)+(2b-a)O(∩_∩)O谢谢解答3分之一a 生活中哪些物体是圆锥体?(要身边随手就能拿的) 把一个底面半径为5cm,厚2cm的圆柱形月饼沿直径切成四等分,表面积增加多少平方厘米?怎么算,为什么 求一段描写冬天小麦的句子求一段描写冬天小麦的段落 设全集U=Z,A={x|x=2k,k设U=Z,A={x|x=2k,k∈Z},B={x|x=2k+1,k∈Z},求:CuA,CuB. 生活中有什么东西是圆锥体的?可以拿来上课用的.我想说的是随处可见的.我很难找到漏斗之类的东西 小麦和我们说的大米区别大吗 设集合A{x:x=2k,k属于Z},B={x:x=2k+1,k属于Z},C={x:x=4k+3,k属于Z}.若a属于A,b属于B,c属于C,试判断a平方+b平方+c平方与集合A,B,C的关系(冒号代表那个竖杠 生活中有哪些东西是圆锥体的? 将一个圆柱体木块截成2个小圆柱体,表面积增加了100.48平方厘米,问圆柱体木块的底面半径?(岩高切的) 1.若集合A={x/x=2k,k∈z },B={x/x=2k+1,k∈z},则A ∪B=?2.下列不能够表示偶数集的是:A.{x/x=2k,k∈Z} B.{偶数} C.{x/x=2n ,n∈N}D.{… ,-4 ,-2 ,0 ,2 ,4 ,…} 生活中哪些物品是圆锥体? 已知向量a=-i 3j,b=3i-3j,则a b的单位向量坐标是 一辆洒水车在路上洒水宽度是两米一小时洒水40千米.问两个小时洒水多少平方千米?合多少公倾? 已知a=3i-j-2k,b=i+2j-k,求a·b已知a=3i-j-2k,b=i+2j-k,求a·b及a×b 稻子和麦子有什么区别? 圆柱体的截面有哪些? 设a=3i-j-2k,b=i+2j-k,求 a·b及axb 一个圆柱体小木块 切成4块 表面积增加48平方厘米,横切3段表面积增加50.24平方厘米,现将它削成最大的圆锥体,体积减少多少?算式,数字的,快急 一辆洒水车,每分钟行驶200米,洒水的宽度是10米.洒水车行驶100分钟,能洒多少平方千米? 生活中的封闭圆柱体急 已知向量i,j是互相垂直的单位向量,a=3i-4j,a+b=4i-3j(1)求向量a,b的夹角的余弦值;(2)对非零向量p,q,如果存在不为零的常熟α,β,使αp+βq=0,那么称向量p,q是线性无关的,向量a,b是线性相关还是
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn