означает здесь асинхронно, что вы не вызываете этот метод напрямую, вместо этого некоторые фоновые службы будут вызывать его в какой-то момент времени, который не контролируется вами. В каком потоке будет вызван этот метод, зависит от конфигурации этого сервиса. Обычно такие службы используют пул потоков.
Эффект использования блокирующих вызовов внутри асинхронных методов заключается в том, что поток, в котором выполняется метод, блокируется и не может обслуживать другие асинхронные вызовы. Если пул потоков за асинхронной службой имеет ограниченное количество потоков, то может произойти так называемое «истощение потоков» и новые асинхронные вызовы не могут быть обработаны. В противном случае, если пул потоков неограничен, он может использовать всю доступную память, поскольку каждому потоку требуется 0,5-1 МБ для его стека вызовов. Чтобы избежать таких негативных последствий, асинхронная служба должна быть построена с пропускной способностью, достаточно высокой, чтобы выдерживать ожидаемую нагрузку, и в случае большой нагрузки следует принять меры предосторожности, чтобы служба изящно деградировала и не вызывала сбой всей JVM с OOM.