Александр Филатов
Компания: Huawei
В современном мире разработчикам сложно избежать темы многопоточности. Необходимо, чтобы приложения работали быстро, с минимальной задержкой, задействовали все доступные вычислительные ядра (не забудьте про масштабируемость!), использовали минимум оперативной памяти и, конечно же, делали именно то, что нужно. К сожалению, даже продвинутые методы тестирования многопоточных программ дают слишком ненадежный результат — всё зависает обязательно на продакшн-сервере, только под большой нагрузкой и наверняка перед самым вашим отъездом в отпуск.
В докладе мы зададимся вопросом: как проверить, что ваше Java-приложение работает при любом, даже самом неожиданном сценарии конкурентного выполнения — не зависает, не приводит к некорректным результатам и не бросает неожиданные исключения. Оказывается, не обязательно быть специалистом по верификации многопоточных алгоритмов, чтобы использовать продвинутые инструменты анализа параллельных систем и успешно находить ошибки в коде. В ходе выступления на примерах будет показано, что используя Java PathFinder — специальную JVM, разработанную в NASA, разработчик может очень быстро находить довольно нетривиальные ошибки, проявляющиеся только при конкурентном исполнении.
Компания: Huawei
Компания: Devexperts