Вопрос

Мне было интересно, если есть какие-либо рамки или приложения (приложение) / программа, которые могут проанализировать параллелизм любого кода Java?

Если инструмент знает все реализации классов и методов и методов JRE, то она сводится к простому анализу синхронизированных блоков и метода и их иерархии вызова.Отсюда он может создать чистую петри и сказать вам наверняка, если бы вы могли испытать тупик.

Я пропускаю что-то или это действительно так легко?Тогда должен быть какой-то прохладный инструмент, делающий такие вещи?Или будет ли такой инструмент отчета слишком много возможных тупиков, которые полностью сохраняются из-за некоторой базовой программы / бизнес-логики?Петри сетки должны быть достаточно мощными, чтобы справиться с этими ситуациями?

Это сэкономит так много часов в поисках ошибок, которые могут или не могут быть связаны с мертвыми блокирующими проблемами.

Это было полезно?

Решение

Хотя (многие) связанные ошибки, связанные с параллелизмом, используя анализ статического кода, он не применяется к каждому типу ошибке.Некоторые ошибки появляются только во время выполнения при определенных условиях.

IBM имеет инструмент под названием Конкурс , которые ; расписание выполнения программных потоков, таких как сценарии программ, которые могут содержать условия гонок, тупики и другие прерывистые ошибки (коллективно называемые проблемы синхронизации), вынуждены появляться с высокой частотой «.

Это требует прогона (единицы) тестов против приборной версии вашего приложения.Больше фоновой информации в этой работе reveloperworks Статья .

Другие советы

Эта бумага описывает инструмент, который выполняет статический анализБиблиотека и определяет, возможна ли возможна тупика.

Некоторые еще:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top