pthread_attr_setscope
Table des matières
Retour à l'index
NOM
pthread_attr_setscope, pthread_attr_getscope — Définir ou obtenir l'attribut
portée de compétition d'un objet d'attributs de thread
BIBLIOTHÈQUE
Bibliothèque de threads POSIX (libpthread, -lpthread)
SYNOPSIS
#include <pthread.h>
int pthread_attr_setscope(pthread_attr_t *attr, int portée);
int pthread_attr_getscope(const pthread_attr_t *restrict attr,
int *restrict portée);
DESCRIPTION
La fonction pthread_attr_setscope() définit l'attribut de portée
(« scope ») de compétition de l'objet d'attributs de thread auquel attr
fait référence à la valeur indiquée par portée. Cet attribut détermine
l'ensemble des threads avec lesquels un thread est en compétition pour les
ressources, telles que le CPU. POSIX.1 spécifie deux valeurs possibles pour
portée :
- PTHREAD_SCOPE_SYSTEM
-
Le thread est en compétition pour les ressources avec tous les threads de
tous les processus du système qui sont dans le même domaine d'ordonnancement
(un groupe composé d'un ou de plusieurs processeurs). Les threads
PTHREAD_SCOPE_SYSTEM sont ordonnancés entre eux en fonction de leur
priorité et de la politique d'ordonnancement.
- PTHREAD_SCOPE_PROCESS
-
Le thread est en compétition pour les ressources avec tous les threads du
même processus du système qui ont aussi été créés avec
PTHREAD_SCOPE_PROCESS. Les threads PTHREAD_SCOPE_PROCESS sont
ordonnancés entre eux à l'intérieur du processus en fonction de leur
priorité et de la politique d'ordonnancement. POSIX.1 ne spécifie pas
comment régler la compétition entre ces threads et les threads d'autres
processus du système, ni avec les threads du même processus qui ont été
créés avec PTHREAD_SCOPE_SYSTEM.
POSIX.1 impose qu'une implémentation doit accepter au moins l'une de ces
portées de compétition. Linux accepte PTHREAD_SCOPE_SYSTEM, mais pas
PTHREAD_SCOPE_PROCESS.
Sur les systèmes qui acceptent plusieurs portées de compétition, pour que la
politique définie par pthread_attr_setscope() puisse être prise en compte
lors de l'appel de pthread_create(3), l'appelant doit définir l'attribut
d'ordonnancement hérité de l'objet d'attributs attr au moyen de
pthread_attr_setinheritsched(3), en lui assignant la valeur
PTHREAD_EXPLICIT_SCHED.
La fonction pthread_attr_getscope() renvoie, dans le tampon pointé par
portée, l'attribut de portée de compétition de l'objet d'attributs de
thread attr.
VALEUR RENVOYÉE
En cas de succès, ces fonctions renvoient 0 ; en cas d'erreur, elles
renvoient un code d'erreur non nul.
ERREURS
pthread_attr_setscope() peut échouer avec les erreurs suivantes :
- EINVAL
-
Une valeur non valable a été spécifiée dans portée.
- ENOTSUP
-
La valeur PTHREAD_SCOPE_PROCESS est spécifiée dans portée, or elle
n'est pas prise en charge sous Linux.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
| Interface | Attribut | Valeur
|
|
pthread_attr_setscope(),
pthread_attr_getscope()
| Sécurité des threads | MT-Safe
|
STANDARDS
POSIX.1-2008.
HISTORIQUE
POSIX.1-2001.
NOTES
La porté de compétition PTHREAD_SCOPE_SYSTEM indique typiquement qu'un
thread dans l'espace utilisateur est rattaché directement à une entité
unique d'ordonnancement du noyau. C'est le cas sous Linux avec
l'implémentation obsolète LinuxThreads, mais aussi avec l'implémentation
moderne NPTL, qui sont toutes les deux des implémentations de threads 1:1.
POSIX.1 spécifie que la portée de compétition par défaut est définie par
l'implémentation.
VOIR AUSSI
pthread_attr_init(3), pthread_attr_setaffinity_np(3),
pthread_attr_setinheritsched(3), pthread_attr_setschedparam(3),
pthread_attr_setschedpolicy(3), pthread_create(3), pthreads(7)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>,
Frédéric Hantrais <fhantrais@gmail.com>
et
Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- ATTRIBUTS
-
- STANDARDS
-
- HISTORIQUE
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:21 GMT, September 19, 2025