Подтвердить что ты не робот

Тестирование параллельных структур данных

Как вы можете практически протестировать синхронизированную структуру данных (в C)?

Запуск нескольких потоков и их конкуренция за доступ к структуре на некоторое время, чтобы увидеть, что что-то пошло не так, не звучит очень безопасно.

EDIT в ответ на комментарии: я имею в виду, что существует несколько потоков, выполняющих функции, которые работают с одним и тем же набором данных, с какой-то стратегией синхронизации (флаги/семафоры/блокировка CAS/и т.д.), чтобы, по-видимому, устранить условия гонки и тупиков. Проблема заключается в программном тестировании правильной синхронизации рабочих.

4b9b3361

Ответ 1

Никто не знает, как это сделать со 100% -ной надежностью. Здесь - всего лишь один пример инструмента тестирования для поиска ошибок concurrency.