При запуске QThread методом start() можно указать приоритет его выполнение. Приоритет определяет приоритетность выполнения потока по отношению к другим потокам. Каждый приоритет сопоставим с числом и начинается от 0 до 7.
Приоритеты QThread
Рассмотрим все варианты начиная от 0 и заканчивая 7:
| QThread :: IdlePriority | 0 | Запланирован, только когда другие потоки не запущены |
| QThread :: LowestPriority | 1 | Запланирован реже, чем LowPriority |
| QThread :: LowPriority | 2 | Запланирован реже, чем NormalPriority |
| QThread :: NormalPriority | 3 | Приоритет по умолчанию для операционной системы |
| QThread :: HighPriority | 4 | Запланирован чаще, чем NormalPriority |
| QThread :: HighestPriority | 5 | Запланирован чаще, чем HighPriority |
| QThread :: TimeCriticalPriority | 6 | Запланирован как можно чаще |
| QThread :: InheritPriority | 7 | Использует тот же приоритет, что и поток создания. Это значение по умолчанию |
Для запуска потока с нужным приоритетом, необходимо указать его в методе start(QThread ::Priority)
Worker thread; thread.start(QThread :: HighPriority);
Так же можно указать приоритет методом setPriority()
Worker thread; thread.setPriority(QThread::LowestPriority);
Для определения с каким приоритетом был запущен поток можно вызвать priority()
Worker thread; thread.priority();
