[an error occurred while processing this directive]
|
эффективнее всего для таких простых задач построить свой шедулер на конечных автоматах. То есть основной цикл представляет собой бесконечный цикл, состоящий из вызовов подпрограмм-обработчиков автоматов. Внутри каждой подпрограммы - переход по таблице согласно текущему состоянию каждого автомата, а дальше - в зависимости от внешних воздействий и семафоров - либо смена состояния, либо оставление его без изменения, ну и действия какие-то. Если действие длительное - разбить его на части. Главное - никогда не задерживаться в обработчике дольше какого-то определенного времени. Кол-во этих автоматов - по кол-ву задач, т.е. "тредов".