2019-02-12——Java 方法调用

软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。

  • 同步调用:即单向调用,阻塞。A调用B,需要拿到B的结果后才能继续执行,是顺序调用
public class A {

    private B b;

    public A(B b){
        this.b = b;
    }
    public void ma(){
        b.mb();
        System.out.println("this is A.ma()");
    }
}




public class B {
    public void mb(){
        System.out.println("this is B.mb()");
    }
}
  • 异步调用:非阻塞调用。A调用B,不需要拿到B的结果就能继续执行。异步调用通常采用多线程的方法来达到目的。
public class A {

    private B b;

    public A(B b){
        this.b = b;
    }
    public void ma(){
        new Thread(() -> b.mb()).start();
        System.out.println("this is A.ma()");
    }
}




public class B {
    public void mb(){
        System.out.println("this is B.mb()");
    }
}
  • 回调:双向调用。A调用B的方法,同时在B的方法中调用了A的另一个方法
public class A {

    private B b;

    public A(B b){
        this.b = b;
    }
    public void ma(){
        b.mb(this);
        System.out.println("this is A.ma()");
    }

    public void callback(){
        System.out.println("this is A.callback()");
    }
}




public class B {
    public void mb(A a){
        a.callback();
        System.out.println("this is B.mb()");
    }
}
  • 异步回调:在回调的基础上异步处理
public class A {

    private B b;

    public A(B b){
        this.b = b;
    }
    public void ma(){
        new Thread(()->b.mb(this)).start();
        System.out.println("this is A.ma()");
    }

    public void callback(){
        System.out.println("this is A.callback()");
    }
}




public class B {
    public void mb(A a){
        System.out.println("this is B.mb()");
        a.callback();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,136评论 1 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,650评论 1 45
  • 转一篇驹神的关于异步编程和Asyncio的文章。这是上篇,共三篇。原文地址:http://aju.space/20...
    SeanCheney阅读 9,826评论 2 99
  • 原来,自己不经意的沉淀的真实而热诚的价值观,是来自我么妈的那种默默关注和持续的鼓励! 我妈是一个很了不起的女人! ...
    羽冰之语阅读 739评论 3 10
  • 太平山之所以叫太平山,可能是因为山顶矗立着一座太平塔。太平塔有些年头了,几次大型修缮也不能阻止野草青苔从塔...
    纸月儿阅读 424评论 0 0