#cpp #qt #многопоточность #qt5
В справке Qt для статического метода QThread::yieldCurrentThread() сказано, что можно, как я это понимаю, "уступить" (yield) контекст выполнения текущего потока иному потоку: Yields execution of the current thread to another runnable thread, if any. Note that the operating system decides to which thread to switch. В чём смысл и для каких случаев может быть полезно применение данного метода?
Ответы
Ответ 1
Вообще говоря, инструкция yield говорит планировщику операционной системы, что в настоящее время потоку не требуется процессорное время и планировщик может прервать его исполнение до истечения отведённого потоку кванта времени и передать управление другому потоку. Планировщик может проигнорировать это заявление и не передавать управление другому потоку. Применять можно, например, для увеличения производительности каких-либо рабочих потоков многопоточных приложений, снижая таким образом производительность вспомогательных потоков. Но следует иметь в виду, что производительность возрастёт только в том случае, когда работающих потоков (реально работающих, а не простаивающих!) больше, чем число ядер процессора. Польза этого, ИМХО, сомнительная и вместо yield лично я бы использовал приоритеты потоков. На практике я это не использовал ни разу.
Комментариев нет:
Отправить комментарий