Java 如何在您正在使用的函数之外启动函数

Java 如何在您正在使用的函数之外启动函数,java,listener,Java,Listener,我还是Java新手,我想知道如何实现这个场景。我有一个执行某些计算的函数,完成后,我希望将结果传递给另一个函数,以便它可以发送通知 我的问题是,第二个函数似乎会导致程序等待响应,尽管它是一个无效函数。因此,我的程序需要时间返回结果,因为它正在执行另一个应该独立的任务 下面是一些sudo代码,以演示我正在尝试做的事情: public class MyCalculationclass { public String PerformCalculations (Object object){

我还是Java新手,我想知道如何实现这个场景。我有一个执行某些计算的函数,完成后,我希望将结果传递给另一个函数,以便它可以发送通知

我的问题是,第二个函数似乎会导致程序等待响应,尽管它是一个无效函数。因此,我的程序需要时间返回结果,因为它正在执行另一个应该独立的任务

下面是一些sudo代码,以演示我正在尝试做的事情:

public class MyCalculationclass {

     public String PerformCalculations (Object object){
       // perform calculation
       sendNotificationToUser(usernotificationToken, calculationValue)

       return "Success"

        }

     public void sendNotificationToUser(String usernotificationToken,String calculationValue ){

          // send user the notification
       }

}
我希望在计算完成时通知void函数运行,这样我就不必等待void函数运行,然后才能收到成功消息。如何在java中实现这一点。

使用线程:

new Thread(() -> sendNotificationToUser(usernotificationToken, calculationValue)).start();
反而

sendNotificationToUser(usernotificationToken, calculationValue);
使用线程:

new Thread(() -> sendNotificationToUser(usernotificationToken, calculationValue)).start();
反而

sendNotificationToUser(usernotificationToken, calculationValue);

< >为了正确使用线程,应该考虑创建一个:


稍后,您可能需要将
execute()
替换为
submit()
,以获取对象。或者更好的是,使用.< /p>来正确使用线程,应该考虑创建一个:


稍后,您可能需要将
execute()
替换为
submit()
,以获取对象。或者更好的方法是使用线程。

使用线程<代码>新线程(()->sendNotificationToUser(usernotificationToken,calculationValue)).start()。必须熟悉Java的背景。Java没有函数,只有方法。似乎你的问题的一部分假设线程的使用,阅读它是什么好主意谢谢你使用线程<代码>新线程(()->sendNotificationToUser(usernotificationToken,calculationValue)).start()。必须熟悉Java的背景。Java没有函数,只有方法。您的问题似乎部分假设线程使用,阅读它是什么好主意谢谢您在线程上执行昂贵的操作/计算是否有任何影响在线程上执行昂贵的操作/计算是否有任何影响“执行计算”部分应该在lambda中,因为这是需要并行化的。@daniu我不是这样理解这句话的:“我想在计算完成时通知void函数运行,这样我就不必等待void函数运行,然后才能得到成功消息。”(强调我的)你是对的,他确实指出“问题是第二个函数似乎导致程序等待”,我错过了这一部分。“执行计算”部分应该在lambda中,因为这是需要并行化的部分。@daniu我不是这样理解这句话的:“当我的计算完成时,我想通知void函数运行,这样我就不必等到void函数运行,然后才能得到成功消息。”(我的重点)你说得对,他说的是“问题是第二个函数似乎导致程序等待”,我错过了那部分。