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 ;
(depuis C++20)

Retourne le nombre de threads simultanés pris en charge par l'implémentation. La valeur doit être considérée uniquement comme une indication.

Table des matières

Paramètres

(aucun)

Valeur de retour

Nombre de threads simultanés pris en charge. Si la valeur n'est pas bien définie ou non calculable, retourne 0 .

Exemple

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

Sortie possible :

4 concurrent threads are supported.

Voir aussi

décalage minimal pour éviter le faux partage
décalage maximal pour favoriser le vrai partage
(constante)