вызовы асинхронных функций в Java - PullRequest
0 голосов
/ 29 ноября 2018

Предположим, у вас есть три класса A, B, C, каждый из которых имеет свою собственную функцию поиска.Я хочу запустить ключ (скажем, «searchKey») одновременно, используя все три функции поиска.Как мне остановить две другие функции поиска, если я получу результат от одной из трех функций?

Кроме того, будет ли это выполняться быстрее, чем в случае, когда у меня есть отдельная хэш-карта в каждом классе и выполняется их поиск один за другим, поскольку поиск разрешается с постоянной сложностью времени?

1 Ответ

0 голосов
/ 29 ноября 2018

Вам нужно будет предоставить открытый метод, чтобы остановить поиск, например, флаг для отмены потоков в их соответствующем классе.

Во второй точке, сложность времени для поиска ключа в HashMapобычно O(1) (наихудший случай O(n), если эти ключи находятся в одном и том же сегменте хэша).Таким образом, для оптимизации не так много места, поскольку она уже работает быстро.Вы даже не заметите это, если будете искать HashMaps в последовательности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...