Я некоторое время работал над многопоточным приложением C (Linux) - видеомагнитофоном, который имеет потоки для захвата, кодирования, мультиплексирования и записи аудио и видео.
Я начал собирать его специально, используя операции pthread, но теперь я пытаюсь расширить его для поддержки большего количества состояний и рефакторинга фрагментов кода, которые появляются как дубликаты, связанные с блокировкой, установкой флагов и сигнализацией состояние и так далее.
На данный момент я придумал что-то вроде этого:
Я планирую хранить общие элементы в структуре и иметь массив этих структур, который я могу перебрать, чтобы запустить, проверить и остановить все потоки.
Поскольку это превращается в более общую модель поддержки потоков, я подумал, что, вероятно, заново изобретаю колесо, поэтому я спрошу здесь, есть ли какие-нибудь хорошо известные шаблоны, которые мне следует применить.