Programmes multithreads
Remonter à Référence de la bibliothèque d'exécution C
Les programmes Win32 peuvent créer plusieurs threads d'exécution. Si votre programme crée plusieurs threads et si ces threads utilisent également la bibliothèque d'exécution C++, vous devez utiliser à la place la bibliothèque CW32MT.LIB ou CW32MTI.LIB.
Les bibliothèques multithreads fournissent les fonctions suivantes que vous utilisez pour créer des threads :
Les bibliothèques multithreads fournissent également les fonctions correspondantes suivantes qui terminent les threads :
- _endthread
- _endthreadex
- _threadid est une variable globale qui contient le numéro d'identification en cours du thread également connu sous le terme ID de thread).
Le fichier en-tête stddef.h contient la déclaration de _threadid.
Lorsque vous compilez ou liez un programme qui utilise plusieurs threads, vous devez utiliser le commutateur -tWM
du compilateur. Par exemple :
BCC32 -tWM THREAD.C
Remarque : Soyez prudent lors de l'utilisation de la fonction signal dans un programme multithread. Les signaux
SIGINT
,SIGTERM
etSIGBREAK
ne peuvent être utilisés que par le thread principal (thread un) dans une application non-Win32. Lorsqu'un de ces signaux survient, le thread en cours d'exécution est suspendu et le contrôle est transféré au gestionnaire de signaux (le cas échéant) configuré par le thread un. Les autres signaux peuvent être gérés par n'importe quel thread. Un gestionnaire de signaux ne doit pas utiliser les fonctions de la bibliothèque d'exécution C++ car un verrou mortel de sémaphore peut survenir. Le gestionnaire doit plutôt définir simplement un indicateur ou poster un sémaphore, et effectuer immédiatement un retour.