JAVA异步加回调的例子

package com.sunchao.callback;
/**
 * callback interface
 * @author Administrator
 *
 */
public interface CallBack {
  /**
   * execute the callback method
   * @param objects  make the asyn execute result as the parameter of callback method
   */
    public void execute(Object...   objects );
}
package com.sunchao.callback;
/**
 * Local class which use to send the message
 *  to the remote class
 * @author Administrator
 *
 */
public class Local implements CallBack,Runnable {
    private Remote remote;
    private String message;

    public Local(String message, Remote remote){
        super();
        this.remote = remote;
        this.message = message;
    }
    @Override
    public void run() {
        this.remote.executeMessage(message, this);
    }

    /**
     * this method is used by the handler class
     * to callback
     */
    @Override
    public void execute(Object... objects) {
        /**
         *  print the result of handler class
         *  and send to the local
         */
        System.out.println(objects[0]);
        System.out.println(Thread.currentThread().getName());
    }
/**
 * new a thread to handle the message;
 */
    public void sendMessage(){
        System.out.println(Thread.currentThread().getName());
        Thread newThread = new Thread(this);
        newThread.start();
        System.out.println("The message has been send!");
    }

    public static void main(String args[]){
        Local local = new Local("hello", new Remote());
        local.sendMessage();
    }
}
package com.sunchao.callback;
/**
 * the remote class which used by to handle
 * the message which send from the local class
 * @author Administrator
 *
 */
public class Remote {
    /**
     * the method used to handle the message
     * @param msg  the message send from the callback class
     * @param callBack  the callback class
     */
    public void executeMessage(String msg, CallBack callBack){
        /**
         * the empty loop represent the remote class is busying to
         * handler the message
         */
        for(int i = 0; i < 10000; i++){

        }
        System.out.println("oh my god ,i have done the message from the local : "  +  msg);

        /**
         * the remote handler has done the message,and now
         * to notify the local class
         */
        callBack.execute((Object[])new String[]{"nice to see again!"});
    }

}
时间: 2024-10-06 22:53:45

JAVA异步加回调的例子的相关文章

android技巧(五)一个异步+接口回调的例子

public class DataBaseUtils { // 当前数据库地址 private String DB_PATH; // 备份后数据库保存地址 private String DB_BACKUP_PATH; private Context context; private MessageShow ms; // 备份成功状态 private final int BACKUP_OK = 1; // 备份失败状态 private final int BACKUP_FAIL = -1; //

ajax异步加载小例子....(通俗易懂)

web.html(用户端): <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>11</title> <script type="text/javascript" src="jquery-1.11.3.min.js"></script> <

zTree.js 异步加载地区例子

后台实现可以参考我以前发表的文章  地区三级联动 zTree API js 下载 点击打开链接 一个效果demo <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - select menu</TITLE> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <

java中的回调机制

以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式: Class A实现接口CallBack callback——背景1 class A中包含一个class B的引用b ——背景2 class B有一个参数为call

学习andriod开发之 异步加载图片--- 使用系统进度条

大家好 我是akira 学习图片异步加载的例子 说道这里有人可能要问了 什么是异步 为什么要用异步 why? 说白了很简单 省时间 省资源 我举个例子你就懂了 比如你在下东西 至于下什么 那些邪恶的骚年们又要YY了 不去管他们.比如你在下东西 这个时候 另外一个人也在下同一个东西 那么那个人怎么办 他就等你下完 等到天荒地老?ありえないこと impossible 他肯定也要下 那么问题就来了 他如何下?这个时候就要用到异步 说道这里 有人可能问什么叫同步 什么叫异步 我在这里在给大家举一个简单的

同步异步与回调函数

同步异步 1,同步 同步是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那个这个进程会一直等待下去,直到收到返回信息,才继续执行下去 from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor import os, random def task(i): print(f'{os.getpid()}开始了任务') time.sleep(random.randint(1,3)) print(f'{o

Android开发之图片处理专题(二):利用AsyncTask和回调接口实现图片的异步加载和压缩

在上一篇专题Android开发之图片处理专题(一):利用软引用构建图片高速缓存中我们讲述了如何利用软引用技术构建高速缓存.那么想要用到图片,首先得有图片的来源.一般而言,一个应用的图片资源都是从服务器处获得的.今天,我们利用Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载里面封装好的httpUtils来实现图片的下载,然后加载到本地配合软引用缓存使用,以一个listView为例子来说明. 一.准备工作 我们需要准备以下几个类(图片对象和软引用缓存类请参考上一篇专

一个小例子理解js异步加载

前几天笔试某公司有这样一道题.编写一个javascript函数,可以在页面上异步加载js,在加载结束后执行callback,并在IE和chrome下可以执行. 就这个题我写了一个DOM方法异步加载js的例子,可以给对于异步不了解的朋友参考感受一下. 众所周知,js是一种单线程的语言,它的Event Loop机制可以看一下阮一峰的这篇博客,讲解的很好 http://www.ruanyifeng.com/blog/2014/10/event-loop.html 下面看一下我写的例子 1 <!DOCT

实现异步加载js文件及加载完成后回调

模块化工具类实现方式 基于AMD.CMD模式的JS模块化管理工具越来越流行,这些工具通常只需在页面中加载对应的工具JS,其他JS文件都是异步加载的,比如RequireJS就可以象下面这样做. 首先在页面加载 <script data-main="scripts/main.js" src="scripts/require.js"></script> 然后工具会自动识别data-main属性值,并加载对应的JS文件,在main.js可以加载更多模