`
wusuoya
  • 浏览: 641410 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Java异步和回调 Demo

    博客分类:
  • Java
 
阅读更多
public interface CallBack {
    /**
     * 执行回调方法
     * @param objects   将处理后的结果作为参数返回给回调方法
     */
    public void execute(Object... objects );
}


public class Local implements CallBack,Runnable{
    private Remote remote;

    /**
     * 发送出去的消息
     */
    private String message;

    public Local(Remote remote, String message) {
        super();
        this.remote = remote;
        this.message = message;
    }

    /**
     * 发送消息
     */
    public void sendMessage()
    {
        /**当前线程的名称**/
        System.out.println(Thread.currentThread().getName());
        /**创建一个新的线程发送消息**/
        Thread thread = new Thread(this);
        thread.start();
        /**当前线程继续执行**/
        System.out.println("Message has been sent by Local~!");
    }

    /**
     * 发送消息后的回调函数
     */
    public void execute(Object... objects ) {
        /**打印返回的消息**/
        System.out.println(objects[0]);
        /**打印发送消息的线程名称**/
        System.out.println(Thread.currentThread().getName());  //Thread-0
        /**中断发送消息的线程**/
        Thread.interrupted();
    }

    public static void main(String[] args)
    {
        Local local = new Local(new Remote(),"Hello");

        local.sendMessage();
    }

    public void run() {
        System.out.println(Thread.currentThread().getName());  //Thread-0
        remote.executeMessage(message, this);  //这相当于给同学打电话,打完电话之后,这个线程就可以去做其他事情了,只不过等到你的同学打回电话给你的时候你要做出响应

    }
}


public class Remote {
    /**
     * 处理消息
     * @param msg   接收的消息
     * @param callBack  回调函数处理类
     */
    public void executeMessage(String msg,CallBack callBack)
    {
        /**模拟远程类正在处理其他事情,可能需要花费许多时间**/
        for(int i=0;i<1000000000;i++)
        {

        }
        /**处理完其他事情,现在来处理消息**/
        System.out.println(msg);
        System.out.println("Remote hava executed the message from Local");
        /**执行回调**/
        callBack.execute(new String[]{"Nice to meet you~!"});  //这相当于同学执行完之后打电话给你
        System.out.println(Thread.currentThread().getName());  //Thread-0
    }
}
分享到:
评论

相关推荐

    给初学者的java回调demo

    这篇"给初学者的Java回调demo"将帮助你深入理解这个概念。 首先,让我们定义什么是回调。在编程中,回调是一种函数或方法的引用,它作为参数传递给其他函数。当这个其他函数执行到一定程度时,它会调用我们传递的回...

    接口回调demo

    总结一下,接口回调是Java中实现异步编程和事件处理的重要手段,而反射则为动态操作类和接口提供了可能。两者结合使用,可以创建更加灵活和动态的系统,尤其在处理复杂逻辑和框架设计时。在`InterfaceCallBackTest`...

    简单回调demo

    回调(Callback)是计算机编程中一个重要的概念,尤其是在异步编程和事件驱动编程中发挥着核心作用。在本文中,我们将深入探讨回调的基本...通过学习和实践,你可以从这个简单的"回调demo"开始,逐步掌握回调的精髓。

    android回调demo

    通过这个“android回调demo”,你应该能够理解回调的基本工作原理,并将其应用于你的项目中,以提升应用的性能和用户体验。在实际编程中,不断实践和探索回调的各种应用场景,将有助于你成为更出色的Android开发者。

    Java异步调用转同步方法实例详解

    异步调用是一种非阻塞的调用方式,调用方在调用过程中,不直接等待返回结果,而是执行其他任务,结果返回形式通常为回调函数。SYNC调用是指调用方在调用过程中,持续等待返回结果。Java中将异步调用转换为同步调用有...

    Java简单的回调(interface)demo

    总结起来,Java中的回调机制主要通过接口实现,它提供了异步编程、事件处理和解耦组件的能力。这个“Java简单的回调(interface)demo”提供了一个基础的示例,展示了如何使用回调接口在任务完成时执行自定义操作。...

    简单的回调demo

    回调方法在计算机编程中是一种常见的设计模式,尤其是在异步编程和事件驱动的环境中。回调机制允许我们注册一个函数,这个函数会在某个特定条件满足或某个事件发生时被调用。这种方式使得程序能够处理非同步操作的...

    接口回调demo完全解析

    在“接口回调demo完全解析”中,我们可以深入理解这个概念并学习如何实际应用。通常,一个完整的示例会包括以下几个部分: 1. **接口定义**:首先,我们需要定义一个接口,它包含了要回调的方法。例如,我们可能有...

    JavaCallback:一个java异步回调demo

    代码public class Demo { public static void main ( String args []) { Value v = new Value (); v . setSum( 0 ); v . getSUM(); for ( int i = 0 ; i &lt; 100 ; i ++ ) { System . out . println( "执行后续任务...

    JNI调用C++代码和C++层回调java层 demo

    // 如果需要回调Java层,可以使用env来查找和调用Java方法 jclass helloJniClass = env-&gt;GetObjectClass(thisObj); jmethodID sayHelloFromJavaMethod = env-&gt;GetMethodID(helloJniClass, "sayHelloFromJava", "...

    安卓开发中的回调函数的Demo

    这个Demo展示了如何在安卓开发中使用回调函数处理异步操作。回调函数是安卓开发中的核心概念,理解并熟练掌握回调机制对于编写高效、响应式的应用程序至关重要。在实际开发中,还可以利用现代编程工具如Kotlin的协程...

    CallBack_DEMO 回调

    在本示例"CallBack_DEMO"中,我们可能正在探讨如何在Java或其他编程语言中实现回调机制。回调通常与异步编程相关,尤其是在处理I/O操作、网络请求或者时间事件时,它能让程序在执行完成后继续执行后续操作,而不是...

    Android接口回调Demo

    本教程通过"Android接口回调Demo"将深入讲解这一关键概念,帮助初学者掌握接口回调的基本用法和实际应用。 接口回调的核心是定义一个接口,这个接口包含了处理特定事件或任务的方法。在Android中,我们通常在服务、...

    java操作微信支付接口Demo

    10. **支付回调处理**:在用户支付成功后,除了微信服务器的异步通知,还可以在前端页面实现支付结果的同步跳转,通常通过JSAPI支付或者Native扫码支付来实现。 11. **JSAPI支付**:适用于网页端支付,需要获取用户...

    Java支付宝网页端支付Demo

    - **异步通知与同步通知**:除了回调URL的同步通知外,支付宝还会通过异步通知(即notify_url)再次确认支付状态,确保双保险。 - **安全问题**:所有敏感信息如私钥、商户ID等必须妥善保管,避免泄露。 通过这个...

    微信java支付和登录api demo

    5. **异步处理**:支付成功后,微信会发送通知到你的服务器,你需要设置异步处理回调函数来接收和处理这些通知。 在实际开发过程中,你需要根据自己的业务需求对这个Demo进行修改和扩展,比如增加退款、查询订单...

    JAVA微信支付完成的demo.rar

    4. 确认支付结果:用户支付完成后,微信会回调后端指定的异步通知URL,后端需要验证回调数据的有效性,并处理支付成功后的业务逻辑,如更新订单状态。 三、支付流程: 1. 用户在前端选择支付,提交订单信息。 2. ...

    微信二维码支付示例demo(java) 附说明

    6. **回调处理**:微信支付支持异步回调,即支付完成后,微信服务器会向商户服务器发送通知。Demo中应包含处理这些回调的方法,用来更新数据库中的订单状态,通知业务系统等。 7. **异常处理与安全**:在处理微信...

    讯飞语音听写demo(java)

    3. 异步处理:为了提高用户体验,语音听写通常采用异步模式,即发送请求后立即返回,识别结果会在稍后通过回调函数通知开发者,避免了长时间阻塞主线程。 四、应用拓展 除了基础的语音听写,讯飞还提供了丰富的...

    通联支付接口相关资料含demo java asp php dotNet

    5. **回调处理**:支付成功后,通联支付会发送回调通知到商户设定的回调URL,开发者需要在此处处理支付结果,更新订单状态。 在ASP(可能是ASP.NET)中,涉及的技术点有: 1. **Web Forms或MVC框架**:ASP.NET...

Global site tag (gtag.js) - Google Analytics