Я использую Spring 4, и я заметил странное поведение... если я вызываю метод async несколько раз из обычного метода экземпляра, то все они вызываются в разных потоках и заканчиваются в произвольные моменты времени, Но если я вызываю несколько раз асинхронный метод из другого метода async, то они заканчиваются по порядку. У меня есть что-то вроде этого:
@Async
public void nonAsyncMethod() {
for (int i = 0; i < 30; i++) {
asyncMethod();
}
}
@Async
public void asyncMethod() {
... something here
}
Я использую исполняемый файл async по умолчанию. Должен ли я использовать другой? Однако этот исполнитель не перерабатывает нити и запускает каждый раз каждый раз, так что это должно быть хорошо... Это может быть просто совпадение? Но я пробовал больше, чем 10 раз, и если я вернусь обратно к не-асинхронному для первого метода, они заканчивают случайным образом