pthread_setconcurrency, pthread_getconcurrency - Définir ou
récupérer le niveau de concurrence
Bibliothèque de threads POSIX (
libpthread,
-lpthread)
#include <pthread.h>
int pthread_setconcurrency(int new_level);
int pthread_getconcurrency(void);
La fonction
pthread_setconcurrency() informe l'implémentation du
niveau de concurrence (nombre de threads exécutés en
parallèle indiqué par
new_level) souhaité par
l'application. Ce n'est qu'une indication pour
l'implémentation : POSIX.1 ne spécifie pas le niveau de
concurrence qui doit résulter d'un appel à
pthread_setconcurrency().
Une valeur de 0 pour
new_level indique à l'implémentation
qu'elle peut gérer le niveau de concurrence au niveau qu'elle juge
approprié.
pthread_getconcurrency() renvoie le niveau de concurrence du processus.
En cas de réussite,
pthread_setconcurrency() renvoie 0 ; en
cas d'erreur, elle renvoie un numéro d'erreur non nul.
pthread_getconcurrency() ne peut pas échouer et renvoie le niveau
de concurrence défini par l'appel précédent à
pthread_setconcurrency() ou 0 si
pthread_setconcurrency() n'a
pas été appelé auparavant.
pthread_setconcurrency() peut échouer avec les erreurs
suivantes :
- EINVAL
-
new_level est négatif.
POSIX.1 also documents an
EAGAIN error ("the value specified by
new_level would cause a system resource to be exceeded").
These functions are available since glibc 2.1.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
pthread_setconcurrency(), pthread_getconcurrency() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Le niveau de concurrence par défaut est de 0.
Les niveaux de concurrence n'ont de sens que pour les implémentations des
threads M:N, pour lesquelles à un moment donné un sous-ensemble
de threads d'un processus peut être associé à un plus
petit nombre d'entités ordonnançable du noyau. Définir le
niveau de concurrence permet à une application de donner une indication
au noyau pour qu'il fournisse le bon nombre d'entités
ordonnançable pour une exécution efficace de l'application.
A la fois LinuxThreads et NPTL sont des implémentations des threads 1:1,
donc définir le niveau de concurrence n'a pas de signification. En
d'autres termes, sous Linux ces fonctions existent essentiellement pour la
compatibilité avec d'autres systèmes et elles n'ont aucun effet
sur l'exécution d'un programme.
pthread_attr_setscope(3),
pthreads(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Frédéric Hantrais <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]