gpt4 book ai didi

java - Java 有没有办法在单独的线程中调用已经运行的对象的方法?

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:28 26 4
gpt4 key购买 nike

这个想法是,一个对象已经在执行某个方法,也许您想调用另一个方法,该方法仅在第一个方法完成时才开始执行。我想到的唯一方法是通过线程可见的成员传递消息,对象将检查消息,执行适当的方法,并可能将该方法的结果存放在第一个线程可以看到的地方。也许有更优雅的方法?

编辑:我正在阅读有关异步注释或 Spring 的异步注释的内容,看来这可能就是我所需要的......

最佳答案

synchronized添加到这两个方法中。

尝试使用和不使用synchronized关键字运行以下命令。

public class SynchronizedMethods {

public synchronized void longRunningMethodA() {
System.out.println("Method A - Start");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e.getMessage(), e);
}
System.out.println("Method A - End");
}

public synchronized void longRunningMethodB() {
System.out.println("Method B - Start");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e.getMessage(), e);
}
System.out.println("Method B - End");
}



public static void main(String[] args) {
final SynchronizedMethods object = new SynchronizedMethods();

new Thread() {public void run() {
object.longRunningMethodB();
}}.start();

object.longRunningMethodA();
}
}

祝你编码愉快!

关于java - Java 有没有办法在单独的线程中调用已经运行的对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35880780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com