Почему потоки X используются в оборудовании, которое поддерживает потоки X?Почему не темы X-1? - PullRequest
0 голосов
/ 11 июня 2018

Чтение этого: https://mariadb.com/kb/en/library/thread-pool-in-mariadb/

Что касается количества потоков, он говорит:

Идеальное решение, которое поможет уменьшить переключение контекста, состоит в том, чтобы поддерживать меньшее числопотоков, чем количество клиентов.Но это число также не должно быть слишком низким, поскольку мы также хотим использовать процессоры в их полном объеме, поэтому в идеале должен быть один активный поток для каждого процессора на машине.

При взгляде наразные процессоры на рынке, скажем, я покупаю компьютер с процессором из 2 ядер, 4 потока.Предполагая, что вы находитесь в Linux, и есть планировщик задач.Разве я не хочу использовать 3 темы?так как 1 поток лучше оставить операционной системе для выполнения каких-либо других полезных процессов?

1 Ответ

0 голосов
/ 08 января 2019

Достойное количество многопоточного программирования позже.В идеале он должен выполнять потоки X-1, однако проблема в том, что в действительности, независимо от того, сколько потоков вы говорите, чтобы запустить процесс, вероятно, есть 10 секунд, если не сотни процессов, запущенных одновременно.

Аппаратное обеспечение и операционная система действительно выполняют последний вызов, в котором указан поток, на котором выполняется процесс, поэтому настройка процесса для запуска потоков x гарантирует только то, что каждый поток будет занят, тогда в противном случае он будет использовать 4 ядра.он будет только делегировать минимальное количество ресурсов, которое позволит компьютеру использовать наименьшее количество энергии и времени, но при этом все будет сделано.

С другой стороны, если вы действительно хотите выделить ядро ​​для потока -затем в Linux вы используете привязку к процессору, но обычно это плохая идея, если есть какой-то другой путь - почти всегда есть другой путь.

...