-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.ru
24 lines (21 loc) · 2.12 KB
/
README.ru
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
==============
=== parcae ===
==============
Хидер-онли библиотека для алализа многопоточных алгоритмов, написанных на C++.
Всё что требуется, это вставить в целевой код этапы выполнения и программа
переберёт все возможные варианты комбинаций выполняемых потоков.
Всю работу выполняет класс CParcae. Целевой код запускается обычным образом,
в нескольких потоках. В самом начале работы потока необходимо вызвать метод
StartThread с параметром - идентификатором потока, который является уникальной
строкой. По мере выполнения программы вызывается функция Milestone, означающая
окончание очередного этапа выполнения программы. По завершении потока должна
быть вызвана функция StopThread, а при завершении всех потоков - Stop.
Функция, запускающая потоки, передаётся в качестве аргумента метода Start.
Этот метод далее выполняет многопоточный код снова и снова, в разных порядках
блокируя потоки так, чтобы этапы чередовались всеми возможными способами.
Анализируя получающиеся результаты таких запусков можно делать выводы о
возможных исходах запуска целевого кода в многопоточном режиме.
---- TODO:
1. Учет мьютексов и дедлоков в анализируемых потоках
2. Статистика времени выполнения этапов
3. Многоязыковая документация