Я бы предпочел, чтобы это был комментарий, но он занимает слишком много символов. В любом случае, ozgur, судя по вопросам в ответах на ваши комментарии, вы, похоже, упускаете из виду тот факт, что вы не можете просто сказать, что мой поток работает так долго и ожидает, что он волшебным образом будет работать вместе с другими потоками, благодаря ОС. Вы должны спроектировать свои потоки и проанализировать их на худшую производительность. Если наихудший случай не соответствует вашим требованиям, то вам нужно изменить дизайн темы.
Таким образом, вместо того, чтобы просто сказать, что поток 1 завершается за 10 мс, а поток 2 - за 20 мс, вы также должны сказать, что поток 1 должен выполняться каждые 15 мс. поток 2 должен выполняться каждые 40 мс. поток 3 должен выполняться каждые 500 мс, поток N должен выполняться каждые 1500 мс. Затем вы выделяете время для завершения каждого потока в худшем случае. Вы собираете все это вместе, выявляете наихудшие возможные сценарии, а затем вы должны убедиться, что каждый поток соответствует требованиям времени. В этом анализе вы также указываете, должны ли некоторые потоки иметь более высокий приоритет, чем другие, чтобы соответствовать их требованиям к синхронизации.
Например, поток 5 выполняется прерывается потоком 4, который прерывается потоком 3, который прерывается потоком N, может быть одним из худших сценариев. Вы помещаете все это на временную шкалу и проверяете, что даже в этом наихудшем сценарии каждый поток соответствует требованиям к синхронизации. Вы можете гарантировать, что потоки завершат этот худший сценарий детерминистически, используя планировщик и приоритеты в ОС реального времени. Именно этот детерминизм делает ОС реального времени.
Если вы сделаете потоки с одинаковым приоритетом, то вы потеряете часть (если не все) этого детерминизма, потому что планировщик может свободно выбирать тот поток, который он хочет запустить следующим.
В таких ОС, как Windows, вы не только не можете указать, когда будет запущен каждый поток, вы даже не можете гарантировать, что ваше приложение будет работать в любой момент времени. ОС может остановить ваше приложение и запустить какой-либо фоновый сервис, когда захочет. Другими словами, нет детерминизма. Таким образом, Windows не является операционной системой реального времени. Хотя, если ваши требования к времени велики, например, (thread1 запускается каждые 10 секунд, thread2 запускается каждые 15 секунд), вы можете по существу относиться к Windows как к операционной системе реального времени, если учитывать учет спада и примерно каждые 10 или 15 секунд. (дайте или возьмите несколько сотен миллисекунд и случайное пропущенное окно) достаточно хорошо.