当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

java操纵回调和线程处理一个耗时呼应全历程[Java编程]

赞助商链接



  本文“java操纵回调和线程处理一个耗时呼应全历程[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

目前程序中有很多触及长耗时呼应历程的处理,比方拜候WebService,远程调用,复杂处理等,假如我们利用直接次序履行的方法举行处理有大概招致界面停顿,呼应终止,无谓等候等缺陷,这是不该该的.

一个耗时呼应历程应当采取回调和线程来处理,具体就是把本来的次序履行改正成异步方法,并让被调用者调用调用者以得到履行后果.在附件的例子中,Viewer就是调用者,它代表界面,而LongTimeResponse是被调用者,它内部用线程启动一个耗时历程,履行完毕再告诉调用者.

Viewer类代码以下:

public class Viewer{
   private int count;
  
   public Viewer(int count){
     this.count=count;
   }
  
   public void printNewCount(int newCount){
     System.out.println("New Count="+newCount);
   }
   public int getCount() {
     return count;
   }
   public void setCount(int count) {
     this.count = count;
   }
}

LongTimeResponse类代码以下,可以看出,它之所以能回调调用者,是因为其内部有调用者的引用viewer,在其构造函数中viewer被赋上了值:

package com.sitinspring;
public class LongTimeResponse implements Runnable{
   private Viewer viewer;
   private int count;
  
   public LongTimeResponse(Viewer viewer){
     this.viewer=viewer;
     this.count=viewer.getCount();
    
     caculateNewCount();
   }
  
   private void caculateNewCount(){
     Thread thread=new Thread(this);
     thread.start();
   }
  
   public void run(){
     try{
       Thread.sleep(10000);  
     }
     catch(Exception ex){
       ex.printStackTrace();
     }
    
     viewer.printNewCount(count*count*count);
   }
}

调用历程以下:

Viewer viewer=new Viewer(10);

LongTimeResponse longTimeResponse=new LongTimeResponse(viewer);

viewer.printNewCount(123);

履行起来可以看出,程序先输出了

New Count=123

过了十秒,才输出:

New Count=1000

这阐明,程序是异步履行的,耗时历程没有影响到骨干程序的运行,而耗时历程完成后,才把返回后果告诉了调用者,骨干程序没有遭到耗时历程的影响,因此也就不会招致界面停顿,呼应终止,无谓等候等缺陷.

以上就是利用回调和线程处理一个耗时呼应的整个历程.


  以上是“java操纵回调和线程处理一个耗时呼应全历程[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .