1、回调函数分类

回调函数区分:同步回调和异步回调

同步回调:意义只在于完成方法调用;

异步调用:可实现并发,主业务线程可以及时释放;异步线程完成工作,执行回调函数,完成善后工作;提高了执行效率。

2、代码示例

1、注测试类

package com.callback2;public class AsyncCallBack {public static void main(String[] args) {System.out.println("业务主线程开始ID:" + Thread.currentThread().getId());System.out.println("------------------");Son son = new Son();Mother mother = new Mother(son);mother.notice();son.writeHomeWork();System.out.println("业务主线程结束ID:" + Thread.currentThread().getId()+"\n");}}

2、母亲

package com.callback2;public class Mother {private Son son;public Mother(Son son) {this.son = son;}public void notice() {new Thread(new Runnable() {@Overridepublic void run() {System.out.println("通知母亲线程ID:" + Thread.currentThread().getId());cookFood("面包");}}).start();}public void cookFood(String bread) {System.out.println("目前做饭线程ID:" + Thread.currentThread().getId());try {System.out.println("母亲烤制" + bread + "中...");Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("母亲烤好了面包");String message = "小明,来吃饭了!";son.callback(message);}}

3、儿子小明

package com.callback2;public class Son {private String status = "";public void writeHomeWork() {System.out.println("小明写作业线程ID:" + Thread.currentThread().getId());System.err.println("小明写作业中...");setStatus("写作业中");}public void callback(String message) {System.out.println("回调小明吃饭线程ID:" + Thread.currentThread().getId());System.err.println(message);System.err.println("好的,马上来!");System.out.println("小明开始吃饭!");setStatus("吃饭中");System.out.println("小明执行吃饭线程ID:" + Thread.currentThread().getId());}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}
}

4、执行结果

业务主线程开始ID:1
------------------
小明写作业线程ID:1
小明写作业中...
业务主线程结束ID:1通知母亲线程ID:12
目前做饭线程ID:12
母亲烤制面包中...
母亲烤好了面包
回调小明吃饭线程ID:12
小明,来吃饭了!
好的,马上来!
小明开始吃饭!
小明执行吃饭线程ID:12

5、结果分析

1) 小明使用主线程写作业(写完写不完,不需要关心);

2) 母亲使用新线程做饭【并发】,母亲做完饭,执行回调函数,通知小明吃饭;

3) 小明使用新线程,开始吃饭。

Java回调函数异步回调案例相关推荐

  1. java回调函数_PHP回调函数及匿名函数概念与用法详解

    1.回调函数 PHP的回调函数其实和C.Java等语言的回调函数的作用是一模一样的,都是在主线程执行的过程中,突然跳去执行设置的回调函数: 回调函数执行完毕之后,再回到主线程处理接下来的流程 而在ph ...

  2. java 自定义函数的调用_Java/Android中的函数调用回调函数自定义回调函数

    在做Android自定义控件时遇到要自定义回调函数的问题,想想自己还暂时没有那么精深的技术,赶紧返过头回来再重新研究Java中回调函数的问题.然而不幸的是,网上太多杂乱的帖子和博客都是转来转去,而且都 ...

  3. 关于js的回调函数,同步回调与异步回调

    回调定义 刚开始学习javascript时,对回调函数的理解仅仅停留在知道定义阶段.什么是回调函数? 就是将一个函数作为参数传递给另一个函数,作为参数的这个函数就是回调函数. 至于为什么要用到回调函数 ...

  4. 回调函数 同步回调 异步回调

    回调函数 回调函数一般是在封装接口的时候,回调显得特别重要,我们首先假设有两个程序员在写代码,A程序员写底层驱动接口,B程序员写上层应用程序,然而此时底层驱动接口A有一个数据d需要传输给B,此时有两种 ...

  5. 回调函数中有回调函数吗_嗨,那里有回调!

    回调函数中有回调函数吗 因为是我的书包,所以我喜欢JavaScript . 实际上,我已经开始喜欢JavaScritp的面向异步回调的编程风格 . 因此,当我发现自己处于非JavaScript环境中时 ...

  6. 回调函数与回调地狱及其解决方法 | JavaScript

    JavaScript中的回调函数与回调地狱及其解决方法 以下为整理的思维导图 图片版+文字版 文末附有参考文章链接 知识点思维导图版 一.什么是回调函数 1.MDN的定义 回调函数是作为参数传给另一个 ...

  7. C++屌屌的观察者模式-同步回调和异步回调

    目录 一.概述 1.同步观察者 2.异步观察者 二.效果展示 三.同步观察者 四.异步观察者 五.相关文章 原文链接:C++屌屌的观察者模式-同步回调和异步回调 一.概述 说起观察者模式,也是比较简单 ...

  8. 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?

    什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题? 参考文章: (1)什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题? (2)https://www.cnblogs.com/kzxi ...

  9. 怎么理解回调函数? 回调函数合集

    网上查了一通,有点体会,特来分享与讨论. ******************************************************************************* ...

最新文章

  1. DFS:深入优先搜索 POJ-2386 Lake Counting
  2. Python 画樱花(动态画+飘落效果+暗色效)
  3. [软件推荐]使用OneNote来构建你自己的知识库(OFFICE2010)
  4. mysql安装配置yum_在CentOS 7下使用yum配置MySQL源并安装MySQL
  5. java实现通用查询_通用业务引用查询服务实现
  6. HAProxy.md
  7. zkcli远程连接_ZooKeeper客户端 zkCli.sh 节点的增删改查
  8. 23.2. REPLACE
  9. C语言项目 ---- 纸牌游戏(详细讲解 + 全部代码 + 运行图片)
  10. wechart image标签
  11. hustoj搭建教程
  12. Java程序员面试分类真题(后附答案解析)
  13. 如何添加打印机到电脑
  14. 怎么把笔记本的数据转移到台式机上?
  15. java里面怎么开根号_新手求解呀!!!!!!!怎么开根号,为嘛我开不了
  16. 结构化数据,半结构化数据,非结构化数据(区别)
  17. 计算机编程中的草图,我每天都画草图,你也该试试看
  18. 使用sql语句往MySQL插入1000万条数据
  19. Cocos2d-x的多线程与异步加载实现详解
  20. LJ2200部分软件空白打印问题解决

热门文章

  1. LoRa技术的行业发展前景如何?
  2. ONLYOFFICE与O2OA参加西部教育博览会圆满成功
  3. C++/C 文件二进制读写
  4. vr手柄显示不了问题
  5. 为什么我在领英上搜到的客户都是显示领英会员(Linkedin Member)?
  6. Android 开发飞机大战
  7. HI3518 CV100 远程监控云台摄像头拆解
  8. 怀念老系统的小伙伴们点这里!(1)
  9. GMap.NET入门详细教程【4】--------为控件添加事件,在鼠标单击时打点
  10. CHEER UP 谐音版