История изменений
Исправление surefire, (текущая версия) :
Тебе во первых нужно понять есть один поток, он выполняет event loop, в event loop попадают разные io операции и другие события. Когда ты запускаешь программу, она выполняется последовательно и если нет задач для event loop она просто завершится. Если есть асинхронным задачи типа ввода-вывода, событий, таймаутов и тому подобное, то event loop становится на ожидание этих событий и при их наступлении исполняет соответствующие коллбеки. Ты не можешь написать чистый асинхронный тяжелый расчёт в том же event loop. Потому, что если коллбек словил длинную не асинк операцию, то другие события не исполняться, пока он не отдаст управление в event loop.
Исходная версия surefire, :
Тебе во первых нужно понять есть один поток, он выполняет event loop, в event loop попадают разные io операции и другие события. Когда ты запускаешь программу, она выполняется последовательно и если нет задач для event loop она просто завершится. Если есть асинхронным задачи типа ввода-вывода, событий, таймаутов и тому подобное, то event loop становится на ожидание этих событий и при их наступлении исполняет соответствующие коллбеки. Ты не можешь написать чистый асинхронный тяжелый расчёт в том же event loop.