При запуске 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();