JAVA实现异步调用实例代码_java

在JAVA平台,实现异步调用的角色有如下三个角色:

调用者 取货凭证   真实数据

一个调用者在调用耗时操作,不能立即返回数据时,先返回一个取货凭证.然后在过一断时间后凭取货凭证来获取真正的数据.

在调用一个方法的时候,程序会进入被调用方法体内,执行完这个被调用方法后,才返回执行下一条语句。怎么做到像ajax异步请求一样,发送请求后,没等请求响应就执行下一条语句呢?对于java的异步请求,找了许多教材都没有找到,如thinking in java、core java2 ......等等。受多线程下载工具以及mootools的Request的启发,做了一个java版的Request,不知它的性能如何。

Request:请求载体

public class Request {
 private RequestContent rc;//请求主体
 public Request(RequestContent rc){
 this.rc=rc;
 }
 protected void start(){ //开始请求
 final Thread t=new Thread(new Runnable(){
  public void run(){
  try{
   rc.doSomeThing();//响应请求
  }catch (Exception e) {
   e.printStackTrace();
   rc.onFailure(); //如果执行失败
  }
  rc.onSuccess();//如果执行成功
  }}
 );
 t.start();
 }
}

RequestContent:请求主体

abstract class RequestContent {
 void onSuccess(){  //执行成功的动作。用户可以覆盖此方法
 System.out.println("onSuccess");
 }
 void onFailure(){ //执行失败的动作。用户可以覆盖此方法
 System.out.println("onFailure");
 }
 abstract void doSomeThing(); //用户必须实现这个抽象方法,告诉子线程要做什么
}

Test:测试

 new Request(new RequestContent(){
  void doSomeThing(){
  System.out.println("doSomething");
  }
  void onSuccess(){
  System.out.println("override onSuccess");
  }
 }).start();

以上代码就是小编给大家分享的java实现异步调用,希望大家喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java实现异步调用
, java异步
jaava异步调用代码
java实现异步调用、java如何实现异步调用、java异步调用、java异步调用方法、java线程异步调用,以便于您获取更多的相关知识。

时间: 2024-09-10 07:26:09

JAVA实现异步调用实例代码_java的相关文章

Java 时间转换的实例代码_java

Java 时间转换的实例代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by Edward on 2016/6/30. */ public class TimeUtil { /** * 将 1467341232351 转换为 指定格式 "yyyy-MM-dd HH:mm:ss.

Java Web用户登录实例代码_java

实现功能: 1.用户登陆.注销 2.利用session记录用户登陆信息 3.在JSP中展示已登陆用户信息 实现原理: 登陆后通过判断用户名和密码是否和存储的一致,如果一致,就把用户信息放到session中储存:如果不一致就提示信息,并且返回登陆页面. 显示信息页面上固定从session中找用户登陆信息,找到就显示用户信息,没找到就显示登陆框. 注销很简单,就是清空session信息. 主要文件: 1.LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑.

java webApp异步上传图片实现代码_java

如何实现java webApp异步上传图片,先了解以下几个问题: 1.图片上传: 2.图片上传预览: 3.上传图片更改地址异步添加到数据库: 主要内容 本示例主要采用纯HTML前端和JavaScript代码作工具,查询有关demo其实现图片上传的代码范例如下: (1)点击上传图片的div代码: <div id="div1" class="photo"> <input type="file" id="choose&quo

Java连接ftp服务器实例代码_java

废话不多说了,直接给大家贴java代码了. import java.io.IOException; import sun.net.TelnetInputStream; import sun.net.ftp.FtpClient; public class MyFtp { static FtpClient myFtp; static String hostname; static String username; static String password; /** * @author cutel

java 字符串词频统计实例代码_java

复制代码 代码如下: package com.gpdi.action; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class WordsStatistics {     class Obj {         int count ;         Obj(int co

Java压缩文件ZIP实例代码_java

提示:java.util.zipoutputstream         java API压缩为zip文件 代码: 复制代码 代码如下: package com.gaoqi.test;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.z

java DOM4J 读取XML实例代码_java

下面展示一篇我自己写的一个XML读取测试 复制代码 代码如下: import java.util.Iterator;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import org.dom4j.*;import org.dom4j.io.SAXRe

java数组输出的实例代码_java

输出一个数组中的元素,我们通常用for循环来做,比如: 复制代码 代码如下: package test; public class Test { public static void main(String args[]){int arr[]={1,2,3};System.out.print("[");for(int i=0; i<arr.length-1; i++)System.out.print(arr[i]+", ");System.out.printl

Java实现堆排序(Heapsort)实例代码_java

复制代码 代码如下: import java.util.Arrays; public class HeapSort {     public static void heapSort(DataWraper[] data){        System.out.println("开始排序");        int arrayLength=data.length;        //循环建堆        for(int i=0;i<arrayLength-1;i++){