Namespaces
Variants

std::jthread:: hardware_concurrency

From cppreference.net

Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
static unsigned int hardware_concurrency ( ) noexcept ;
(начиная с C++20)

Возвращает количество параллельных потоков, поддерживаемых реализацией. Значение следует рассматривать только как ориентировочное.

Содержание

Параметры

(нет)

Возвращаемое значение

Количество поддерживаемых параллельных потоков. Если значение не определено четко или не может быть вычислено, возвращает 0 .

Пример

#include <iostream>
#include <thread>
int main()
{
    unsigned int n = std::jthread::hardware_concurrency();
    std::cout << n << " concurrent threads are supported.\n";
}

Возможный вывод:

4 concurrent threads are supported.

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

минимальное смещение для предотвращения ложного разделения
максимальное смещение для обеспечения истинного разделения
(константа)