THREAD : Un process comporte au moins un thread principal plus d'autres optionnels qu'il peut créer. Les Threads s'exécutent en parallèle. Tous les threads d'un processus accèdent directement aux données de celui-ci. Sur un P.C. mono processeur, un seul thread s'exécute à la fois. NT choisit le thread actif sans considérer le process auquel il appartient. En principe la priorité du thread se choisit dans une fourchette relative autour de la classe de priorité de son process :
La dernière priorité est un peu spéciale car elle prend la valeur 31 si le process est temps réel et 15 sinon.
Seul ces cinq priorités appliquées dans le contexte d'un PROCESS temps réel garantit que le thread activable de plus forte priorité est activé. Pour les autres niveaux (sur 32) NT fait varier dynamiquement les priorités pour améliorer les performances du système Sous C++ Builder, un thread se crée par _beginThread, variantes dérivées de l'API WIN32 mais qui permettent aux threads d'utiliser la bibliothèque de C++ builder. ex : g_hThread = (void *)_beginthread(ThreadWaitable, 0, NULL); avec : void ThreadWaitable (LPVOID lpThreadParameter) Le Thread peut être supprimé de l'extérieur par TerminateThread. Sa priorité se positionne par: SetThreadPriority(g_hThread, Priorite); Prototypes :
|
|