Модульное тестирование потокового кода? Форсирование состояния гонки

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

Есть ли у кого-нибудь ссылки на справочные материалы, на которые я могу ссылаться, когда дело касается потоков и модульного тестирования? Меня особенно интересует создание условий гонки.

8
задан d11wtq 14 December 2010 в 03:12
поделиться