Java 如何在您正在使用的函数之外启动函数
我还是Java新手,我想知道如何实现这个场景。我有一个执行某些计算的函数,完成后,我希望将结果传递给另一个函数,以便它可以发送通知 我的问题是,第二个函数似乎会导致程序等待响应,尽管它是一个无效函数。因此,我的程序需要时间返回结果,因为它正在执行另一个应该独立的任务 下面是一些sudo代码,以演示我正在尝试做的事情:Java 如何在您正在使用的函数之外启动函数,java,listener,Java,Listener,我还是Java新手,我想知道如何实现这个场景。我有一个执行某些计算的函数,完成后,我希望将结果传递给另一个函数,以便它可以发送通知 我的问题是,第二个函数似乎会导致程序等待响应,尽管它是一个无效函数。因此,我的程序需要时间返回结果,因为它正在执行另一个应该独立的任务 下面是一些sudo代码,以演示我正在尝试做的事情: public class MyCalculationclass { public String PerformCalculations (Object object){
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函数运行,然后才能得到成功消息。”(我的重点)你说得对,他说的是“问题是第二个函数似乎导致程序等待”,我错过了那部分。