Support de fil
Les commandes de prise en charge des threads permettent de spécifier le niveau de prise en charge de la programmation multithread dans une classe ou une fonction. Il existe trois niveaux de support : threadsafe, reentrant et nonreentrant.
La valeur par défaut est nonreentrant, ce qui signifie que la classe ou la fonction associée ne peut pas être appelée par plusieurs threads. Reentrant et threadsafe sont des niveaux principalement utilisés pour les classes.
Reentrant signifie que toutes les fonctions de la classe référencée peuvent être appelées simultanément par plusieurs threads, à condition que chaque invocation des fonctions fasse référence à des données uniques. Alors que threadsafe signifie que toutes les fonctions de la classe référencée peuvent être appelées simultanément par plusieurs threads, même si chaque invocation fait référence à des données partagées.
Lorsqu'une classe est marquée \reentrant ou \threadsafeles fonctions de cette classe peuvent être marquées nonreentrant à l'aide de la commande \nonreentrant à l'aide de la commande
Exemple de commande
/*!
\class QLocale
\brief The QLocale class converts between numbers and their
string representations in various languages.
\reentrant
\ingroup i18n
\ingroup text
QLocale is initialized with a language/country pair in its
constructor and offers number-to-string and string-to-number
conversion functions similar to those in QString.
...
\nonreentrant
Sets the global default locale to \a locale. These values are
used when a QLocale object is constructed with no
arguments. If this function is not called, the system's locale
is used.
\warning In a multithreaded application, the default locale
should be set at application startup, before any non-GUI
threads are created.
\sa system(), c()
*/
void QLocale::setDefault(const QLocale &locale)
{
default_d = locale.d;
}QDoc génère une notification lorsqu'une classe est déclarée réentrante et énumère les exceptions (les fonctions déclarées non réentrantes). Un lien vers la documentation générale sur la réentrance et la sécurité des threads est inclus. En outre, un avertissement,"Warning: Cette fonction n'est pas réentrante", est généré dans la documentation des fonctions non réentrantes.
QDoc génère la même notification et les mêmes avertissements lorsqu'une classe est déclarée threadsafe.
Pour plus d'informations, voir la documentation générale sur la réentrance et la sécurité des threads.
Commandes
\threadsafe
La commande \threadsafe inclut une ligne dans la documentation pour indiquer que la classe ou la fonction associée est threadsafe et peut être appelée simultanément par plusieurs threads, même si les invocations séparées font référence à des données partagées.
La commande doit être placée sur sa propre ligne.
La documentation générée par cette commande sera similaire à celle générée pour la commande \reentrant La documentation générée par cette commande sera similaire à celle générée pour la commande Voir l'exemple ci-dessus dans l'introduction.
Voir aussi \reentrant et \nonreentrant.
\reentrant
La commande \reentrant indique que la classe ou la fonction associée peut être appelée simultanément par plusieurs threads, à condition que chaque invocation fasse référence à ses propres données. Voir l'exemple ci-dessus.
La commande doit être placée sur sa propre ligne.
Voir aussi \nonreentrant et \threadsafe.
\nonreentrant
La commande \nonreentrant indique que la classe ou la fonction associée ne peut pas être appelée par plusieurs threads. Nonreentrant est le cas par défaut.
La commande doit être placée sur sa propre ligne.
Lorsqu'une classe est marquée \reentrant ou \threadsafeles fonctions de cette classe peuvent être marquées nonreentrant en utilisant cette commande dans le commentaire \fn des fonctions à exclure.
Voir aussi \reentrant et \threadsafe.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.