java常见的几种调用机制同步调用,异步调用

1、同步调用 同步调用是最基本的调用方式,对象b中的方法直接调用对象a的方法,这个时候程序会等待对象a的方法执行完返回结果之后才会继续往下走。代码如下:public class A { public void methodA(){ System.out.println("this is class A method");} } public class B { public void methodB(){...
java常见的几种调用机制同步调用,异步调用
1、同步调用
同步调用是最基本的调用方式,对象b中的方法直接调用对象a的方法,这个时候程序会等待对象a的方法执行完返回结果之后才会继续往下走。
代码如下:
public class A {
public void methodA()
{
System.out.println("this is class A method");
}
}
public class B {
public void methodB()
{
A a = new A();
a.methodA();
System.out.println("this is class B method");
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
b.methodB();
}
}
结果:
this is class A method
this is class B method
2、异步调用
对象b中的方法调用对象a的方法,程序并不需要等待对象a的方法返回结果值,直接继续往下走。
代码如下:
public class A extends Thread{
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("this is class A method");
}
}
public class B {
public void methodB()
{
A a = new A();
a.start();
System.out.println("this is class B method");
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
b.methodB();
}
}
结果:
this is class B method
this is class A method
说明:异步调用我们通常采用多线程的方法来达到目的
3、回调
对象a的方法methodA()中调用对象b的methodB()方法,在对象b的methodB()方法中反过来调用对象a的callBack()方法,这个callBack()方法称为回调函数,这种调用方法称为回调。
代码如下:
public class A {
public void methodA()
{
B b = new B();
b.methodB(new A());
System.out.println("this is class A method : methodA");
}
public void callBack()
{
System.out.println("this is class A method : callBack");
}
}
public class B {
public void methodB(A a)
{
System.out.println("this is class B method : methodB");
a.callBack();
}
}
public class Test {
public static void main(String[] args) {
A a = new A();
a.methodA();
}
}
运行结果:
this is class B method : methodB
this is class A method : callBack
this is class A method : methodA
注意:这里如果为了代码的扩展性更好,可以把类A与类B抽象出一个接口出来,然后用实现类去实现着两个接口,这样代码的扩展性会更好,也能满足更多的业务场景。
回调的核心在于:回调方将本身对象传给调用方,调用方在本身代码逻辑执行完之后,调用回调方的回调方法。2018-09-07
mengvlog 阅读 7 次 更新于 2025-07-18 10:41:16 我来答关注问题0
  • 1、同步调用 同步调用是最基本的调用方式,对象b中的方法直接调用对象a的方法,这个时候程序会等待对象a的方法执行完返回结果之后才会继续往下走。代码如下:public class A { public void methodA(){ System.out.println("this is class A method");} } public class B { public void methodB(){...

  •  百度网友ea661c4 java中同步有几种方式啊

    Java.lang.object 里的三个方法wait() notify() notifyAll()wait方法导致当前线程等待,直到其他线程调用同步监视器的notify方法或notifyAll方法来唤醒该线程。wait(mills)方法 都是等待指定时间后自动苏醒,调用wait方法的当前线程会释放该同步监视器的锁定,可以不用notify或notifyAll方法把它唤醒。notify(...

  •  誉祥祥知识 java开发 多线程: wait()、sleep()、 join()和yield()区别

    wait、sleep、join和yield在Java多线程中的区别如下:wait方法:所属类:Object类。使用场景:用于让线程等待特定条件满足。同步要求:必须在synchronized修饰的同步代码块中调用。资源释放:会释放CPU资源和同步锁,直到调用notify或notifyAll方法后,线程才能重新竞争锁。状态转换:调用wait的线程会进入等待池,...

  •  翡希信息咨询 java同步是什么意思?

    1. 同步的目的: 当多个线程同时访问共享数据时,为了避免数据不一致的情况,需要使用同步机制来保证数据的一致性。2. 同步的实现方式: 同步方法:在方法的声明中加入synchronized关键字。同步方法所在的对象是锁定对象,同一时间只能有一个线程访问该方法。 同步块:使用synchronized关键字对一个代码块进行...

  • (1)同步方法:即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。(2)同步代码块 即有synchronized关键字修饰的语句块。被该关键字修饰的语句块会自动被加上内置锁,从而实现...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部