РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
767 of 815 menu

Функция hardware_concurrency

Функция hardware_concurrency класса thread возвращает количество аппаратных потоков, которые могут выполняться одновременно. Это значение обычно равно количеству логических ядер процессора. Функция не принимает параметров. Возвращаемое значение имеет тип unsigned int. Если информация недоступна, функция возвращает 0.

Синтаксис

unsigned int thread::hardware_concurrency();

Пример

Давайте выведем количество аппаратных потоков в текущей системе:

#include <iostream> #include <thread> using namespace std; int main() { unsigned int res = thread::hardware_concurrency(); cout << res << endl; return 0; }

Результат выполнения кода:

8

Пример

Давайте используем это значение для определения количества потоков при распределении работы:

#include <iostream> #include <thread> using namespace std; int main() { unsigned int count = thread::hardware_concurrency(); if (count == 0) { count = 1; } cout << "Threads: " << count << endl; return 0; }

Результат выполнения кода:

"Threads: 8"

Смотрите также

  • класс thread,
    который представляет отдельный поток выполнения
  • метод join,
    который ожидает завершения потока
  • метод detach,
    который отделяет поток от объекта
  • метод get_id,
    который возвращает идентификатор потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить