Журналы
Email: Пароль: Войти Регистрация
Состояния гонки (data race) являются одними из самых трудновоспроизводимых и сложных в обнаружении ошибок многопоточного программирования. Они наступают, когда в параллельной программе происходит два несинхронизированных обращения к одному и тому же участку памяти, из которых одно является записью данных. Обычно гонки ведут к повреждению глобальных структур данных, а их «ручное» обнаружение сильно затруднено. Теме автоматизированного поиска гонок посвящено множество различных исследований, но она продолжает оставаться актуальной. Популярен динамический подход к обнаружению гонок, когда анализ и поиск гонок происходит прямо во время выполнения программы. В данной статье рассматривается эволюция существующих подходов к динамическому обнаружению гонок, анализируются их достоинства и ограничения. Отдельное внимание уделяется вопросу поиска гонок в Java-приложениях.

One of the most hazardous and hardly reproducible errors that occur in multithreaded programs are data races — unsynchronized accesses to same shared memory fragment from several threads, where one access is write. Generally data races are weakly localized and damage global data structures. Manual detection of data races is very complicated. There was a lot of research in this area, but automatic data race detection remains an actual issue. In this review evolution of existing approaches is considered and their advantages and drawbacks are analyzed. Special attention is paid to automatic race detection in Java applications.

Ключевые слова: многопоточность, параллельное программирование, автоматическое обнаружение ошибок, состояние гонки, обзор.
Keywords: concurrency, data race, automatic bugs detection.
Для пополнения баланса выберите страну, оператора и отправьте СМС с кодом на указанный номер. Отправив одну смс, вы получаете доступ к одной статье.
Закрыть