- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
J2ME中多线程网络连接编程的分析论文.doc
J2ME中多线程网络连接编程的分析论文
摘 要 介绍并分析了J2ME的通用网络连接框架(GCF),并以此为基础,指出了在J2ME网络连接编程中存在的问题,并提出了通过构建多线程的两种解决方法。 关键词 J2ME GCF多线程 网络连接
0 引言 J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话、可视电话、数字机顶盒和汽车导航系统等等。即J2ME是为消费电子产品和手持设备量身定制的Java专用版本。J2ME的出现使开发跨平台的消费类电子产品的应用软件成为可能。Java语言的与平台无关的特性移植到小型电子设备上,.freeleicroedition.io 包中定义的接口。图 1 显示了 GCF 的类层次结构。图1 GCF 的类层次结构 在 GCF 中共定义了七个接口 ,其中 Connection 是最基本的连接类型。且同时提供了对数据包和流连接的支持。沿着层次结构向下派生出提供更多功能的接口。例如, StreamConnection 接口支持输入流和输出流, ContentConnection接口又扩展了 StreamConnection 接口以支持对流的内容类型、数据长度和编码格式的确定,HttpConnection接口又扩展了ContentConnection接口以支持对于标准的HTTP请求。如在框架层规定的适用于手机或双向寻呼机的移动信息设备框架MIDP(Mobile Information Device Profile)在其MIDP 1.0 规范只要求设备支持 HTTP 连接协议,而更新的 MIDP 2.0 规范要求同时支持 HTTP 和 HTTPS,后者提供了对更安全的网络连接的支持。2 网络编程中的多线程 由于目标设备具有内存小,计算能力弱和电池供电等特点,所以如何使应用程序高效的运行就成为开发中的一个大问题.尤其针对手机等移动信息设备时,无线通讯的特点又对我们的程序提出了更高的要求.从代码优化的角度,在网络编程中引入多线程就显得十分重要. 当程序运行的时候,Application Management Softand显示部件,调用其事件处理函数完成网络的连接工作,代码框架如下:
public void mandAction(mand c, Displayable s) {
if(c==sendmand){ requestConnect();//连接方法 } else if(c==backmand){ display.setCurrent(mainForm); }else{ destroyApp(false); notifyDestroyed(); } }
// 获取一个HTTP的连接
private void requestConnect() {
String url= URL.URLString HttpConnection hpc = null;try{hpc = (HttpConnection)Connector.open(url);int status = hpc.getResponseCode();if(status != HttpConnection.HTTP_OK) content = 联机失败!;elsecontent = 已联机!;}catch(IOException e){System.out.println(content);} try{ if(hpc != null) hpc.close();} catch(IOException e2){}} 上面的程序工作原理可用图2的工作原理图a来表示。图2 工作原理图a 分析图2可以得出,如果这样的网络连接程序在手机上运行,那么将可能长时间得不到响应。因为连接工作只有一个主线程,所有的应用都是在这个主线程当中进行的,如果此主线程不返回,那么就不能进行后面的行为,用户也不能进行任何操作。 下面改进一下程序,创建一个实现Runnable接口的ConnectPipe类来创建多线程。代码如下://实现Runnable接口class ConnectPipe implement Runnable{……public void run(){ requestConnect();}}修改mandAction函数:public void mandAction(mand c, Displayable s) {
if(c==sendmand){//创建新线程neand){ …… }}
修改之后程序能够较为顺利的运行,当处理网络连接的时候,启动一个线程后主线程会立刻返回,两个线程并行,不会引发在此地堵塞。其工作原理可
您可能关注的文档
- HPLC测定夏桑菊颗粒中蒙花苷的含量论文.doc
- HPLC测定息喘丸中盐酸麻黄碱的含量论文.doc
- HPLC测定核黄素磷酸钠中核黄素的含量论文.doc
- HPLC测定结核灵片中狼毒乙素的含量论文.doc
- HPLC测定荜茇三味散中胡椒碱的含量论文.doc
- HPLCCDD法测定盐酸头孢吡肟及其制剂中的N甲基吡咯烷的含量论文.doc
- HPLCDADELSD法同时测定威灵仙药材中齐墩果酸和常春藤皂苷元的含量论文.doc
- HPLCELSD法测定注射用硫酸异帕米星含量论文.doc
- HPLCMS法测定不同产地冻干鲜鱼腥草中黄酮类成分的含量论文.doc
- HPV16 E7和Brn3a在宫颈癌前病变中的表达及其意义论文.doc
文档评论(0)