вопрос по QThreadPool

248
13 июля 2017, 01:28

Использую QThreadPool, делаю setMaxThreadCount(10), ошибок нету, все работает, только потоков в тредпуле все равно 4(количество ядер на машине), понять совершенно не могу, почему. Кто сталкивался с таким и как решали проблему?

Answer 1

setMaxThreadCount устанавливает максимальное кол-во потоков, которые может использовать 'QThreadPool'. 'activeThreadCount' покажет кол-во потоков, которые используются прям сейчас. Создавать сразу много потоков нет смысла. Но если Вы создадите достаточно заданий, может быть 'QThreadPool' и создаст их. Но тут опять же все сложно - если задачи работают с сетью/диском и медленные, то много потоков может быть оправданно. Если же задачи тяжелые (кодирование видео, биткоины, перебор паролей), то кол-во потоков по кол-ву ядер оптимальное. Увеличение кол-ва потоков не даст прироста.

Для дальнейшего понимания, почитайте о законе Амдала.

READ ALSO
Какие плюсы и минусы использования goto?

Какие плюсы и минусы использования goto?

Предположим, у меня есть следующая конструкция:

271
OpenOCD error: gdb requested a non-existing register

OpenOCD error: gdb requested a non-existing register

Добрый день! Прошу помочь разобраться с проблемойПытаюсь настроить отладчик (gdb 8

313