В настоящее время я изучаю pthreads и пытаюсь понять связь между приоритетом потока и политикой. Что я знаю до сих пор:
Приоритет потока - это целое число, которое указывает приоритет. Чем выше это число, тем выше приоритет, который поток обрабатывает ОС.
Политика потока определяет, как поток выполняется среди процессов с общим номером приоритета. SCHED_RR и SCHED_FIFO - это политики в реальном времени, которые выполняются непрерывно, пока не будет введена явная команда «сна». Таким образом, программист должен очень тщательно писать код при использовании этих политик. SCHED_OTHER - это политика циклического перебора, которая не выполняется в реальном времени.
Однако, допустим, у меня есть следующие сценарии (предположим, что каждый поток не использует команду «сна»).
Thread 1: priority = 0, policy = SCHED_OTHER
Thread 2: priority = 1, policy = SCHED_OTHER
// would thread 1 run at all?
Thread 1: priority = 0, policy = SCHED_RR
Thread 2: priority = 1, policy = SCHED_RR
// would thread 1 run at all?
Я не понимаю, влияет ли политика потоков на приоритет потока или приоритет политики всегда превосходит политику.
Редактировать: Найдена веб-страница, которая прояснила большую часть моей путаницы: https://computing.llnl.gov/tutorials/pthreads/man/sched_setscheduler.txt