java - Java 中的异步函数调用

标签 java asynchronous

假设您有三个类 A、B、C,每个类都有自己的搜索功能。我想同时使用所有三个搜索功能运行一个键(比如 'searchKey' )。如果我从三个函数之一得到结果,如何停止其他两个搜索函数?

此外,这会比我在每个类中都有一个不同的 HashMap 并一个接一个地搜索它们的情况运行得更快吗,因为搜索解析为恒定的时间复杂度?

最佳答案

您需要公开一个公共(public)方法来停止搜索,例如取消各自类中线程的标志。

关于你的第二点,HashMap 中关键搜索的时间复杂度通常是 O(1)(最坏情况 O(n) 如果这些键在同一个哈希桶中)。所以没有太多的优化空间,因为它已经非常快了。如果您按顺序搜索 HashMaps,您甚至不会注意到这一点。

关于java - Java 中的异步函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53536933/

相关文章:

android - 如何使用地理围栏避免 Android 中的多个回调级别

swift - 计时器不会停止在 segue 上

java - 如何确保属性文件中的值属于另一个属性文件的键集?

java - Setter 没有为 java 对象设置值

java - 引用初始化为 null 的对象数组中的槽

c# - 异步发送电子邮件和处理

c# - 简单快速的异步二进制 TCP 套接字服务器?

java - 如何释放 Java 端本地方法分配的内存?

java - 检查 Java 中的实例是数组还是集合

javascript - 非法 break 语句 (Node.js)