资讯专栏INFORMATION COLUMN

java回调函数-异步回调-简明讲解

Simon_Zhou / 2901人阅读

摘要:回调函数异步回调简明讲解叙言异步回调常用于某些业务需要很长时间处理,但是又需要立刻返回结果,这种情况都需要开辟线程独立处理需要长时间多的业务,也无处理完了,回调回调函数,再去处理与之有关的需要在该业务之后处理的业务。

java回调函数-异步回调-简明讲解

叙言:
异步回调常用于某些业务需要很长时间处理,但是又需要立刻返回结果,这种情况都需要开辟线程独立处理需要长时间多的业务,也无处理完了,回调回调函数,再去处理与之有关的需要在该业务之后处理的业务。
之前看到网上说的回调,虽然有很多说明,但是还是不太好理解,而且比较繁复,个人感觉做的说明并不实用,故而才有了写这篇文的想法,希望拙见能够帮助到看此文的你。

1、网上有很多回调例子,对于同步回调,这里就不细说了,就是在我这个异步回调的基础上把线程去掉就行了。
2、网上说回调函数的时候,很多都是写两个类,一个接口,有些虽然没有接口,但是还是两个类,基本上都是使用两个不同的类来做说明的,其实没有必要,当我们需要用异步回调的时候,再去创建一个类,甚至一个接口,还需要实例化对象去调用方法,这种方式并不太实用。
3、我这里就是在一个类里处理完所有的回调过程,需要调用异步的时候,再原来代码的基础上添加一个线程调用需要时间处理的业务方法,再写一个方法(回调函数),用于当需要时间处理的那个业务处理完之后,去完成之后的业务。还需要一个方法,这个方法就是用来处理需要长时间处理的业务的。其实就是在主线程的基础上再开一个线程,相当于在原来代码的基础上添加三个方法就能完成异步回调。
4、下面就是我的代码,这里用main测试的,所以方法都是static修饰的静态方法。

 public class CallBack {
                public static void meNeed() {
                //开启线程--->点外买
                new Thread(new Runnable() {
                    
                    @Override
                    public void run() {
                        //带什么外卖
                        String food = "你好,请帮点一份蛋炒饭盖饭,要辣,不要麻,要放鸡精,不放味精,盐要低钠盐,还要多放点葱花";
                        //下单
                        takeouts(food);
                        
                    }
                }).start();
                
                
                //玩游戏去
                playGames();
            }
        
            /**
             * @throws @Description:点完外卖,我就去玩游戏去了
             */
            public static void playGames() {
                System.err.println("我玩游戏去了");
            }
        
            /**
             * @throws @Description:外卖送到门外,敲门提示我外卖到了,叫我去拿外卖----这个方法就是所谓的--->回调函数
             */
            public static void callback(String message) {
                //这里就是需要等待之后才能进行的后续业务逻辑
                System.err.println(message);
            }
        
            /**
             * @throws @Description:
             * @param help
             */
            public static void takeouts(String food) {
                // 模拟带外卖需要的时间
                for (int i = 0; i < 10000; i++) {
                    for (int j = 0; j < 100; j++) {
                        for (int k = 0; k < 10000; k++) {
                            for (int l = 0; l < 100; l++) {
        
                            }
                        }
                    }
                }
                // 外卖送到了门口,敲门
                String message = "你的外卖到了";
                callback(message);
            }
            
            //测试回调
            public static void main(String[] args) {
                meNeed();
            }
        }    
        
     


              

 

     

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69374.html

相关文章

  • JavaScript简明教程之浏览器,前端程序猿必看

    摘要:浏览器对象可以获取浏览器提供的很多对象,并进行操作。对象不但充当全局作用域,而且表示浏览器窗口。对象表示当前页面的信息。由于在浏览器中以形式表示为树形结构,对象就是整个树的根节点。这个行为由浏览器实现,主流浏览器均支持选项,从开始支持。 由于JavaScript的出现就是为了能在浏览器中运行,所以,浏览器自然是JavaScript开发者必须要关注的。【写的比较多,难免有疏漏的地方,希望...

    explorer_ddf 评论0 收藏0
  • JavaScript简明教程之浏览器,前端程序猿必看

    摘要:浏览器对象可以获取浏览器提供的很多对象,并进行操作。对象不但充当全局作用域,而且表示浏览器窗口。对象表示当前页面的信息。由于在浏览器中以形式表示为树形结构,对象就是整个树的根节点。这个行为由浏览器实现,主流浏览器均支持选项,从开始支持。 由于JavaScript的出现就是为了能在浏览器中运行,所以,浏览器自然是JavaScript开发者必须要关注的。【写的比较多,难免有疏漏的地方,希望...

    _ivan 评论0 收藏0
  • Java 8 CompletableFuture 教程

    摘要:在这种方式中,主线程不会被阻塞,不需要一直等到子线程完成。主线程可以并行的执行其他任务。如果我们不想等待结果返回,我们可以把需要等待完成执行的逻辑写入到回调函数中。任何立即执行完成那就是执行在主线程中尝试删除测试下。可以使用达成目的。 Java 8 有大量的新特性和增强如 Lambda 表达式,Streams,CompletableFuture等。在本篇文章中我将详细解释清楚Compl...

    since1986 评论0 收藏0
  • 前端基础

    摘要:谈起闭包,它可是两个核心技术之一异步基于打造前端持续集成开发环境本文将以一个标准的项目为例,完全抛弃传统的前端项目开发部署方式,基于容器技术打造一个精简的前端持续集成的开发环境。 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。 不论你是javascript新手还是老鸟,不论是面试求职,还是日...

    graf 评论0 收藏0
  • 初步讲解JS中的callback回调原理

    摘要:大部分人都知道回调函数在中被发挥的淋漓尽致,然而新手往往很少知道回调函数原理,所以接下来我们仍以这个栗子为代表探讨回调函数。这就是对回调函数的简单讲解,萌新程序员,欢迎纠错 JS的异步执行机制 什么是异步执行 为了提高Javascript代码的运行效率,JS对于部分函数方法采用了异步调用机制(如Ajax的操作)。异步执行的函数方法的执行并非为一个队列挨个执行的,而是相互独立,同时调用执...

    Simon_Zhou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<