Application, process et thread...
Et tout ce qui en découle !
- Qu'est ce qu'une application, un process et un thread ?
- Gestion des threads avec les fonctions CreateThread(), TerminateThread() ou la fin normal d'un thread
- Mettre en sommeil un thread Sleep() et SleepEx()
- Suspendre et résumer un thread
- Priorité des threads
- Communication thread vers une fenêtre et d'un thread vers un thread
par message :
SendMessage(), PostMessage(), PostThreadMessage(), PeekMessage et GetMessage()
Sections critiques et les exclusions mutuelles (mutex)
- Comment gérer l'accès aux mêmes variables entre différents
threads d'un même processus
sections critiques:InitializeCriticalSection(), EnterCriticalSection(), LeaveCriticalSection() et DeleteCriticalSection(). - Comment gérer l'accès à différentes ressources entre différents threads de différents processus ou encore n'avoir qu'une seule instance de notre application (CreateMutex, OpenMutex et ReleaseMutex).
- Comment limiter à un certain nombre l'accès à une
ressource :
CreateSemaphore(), OpenSemaphore() et ReleaseSemaphore().
- Comment synchroniser des tâches:
CreateEvent(), OpenEvent(), SetEvent(), ResetEvent().
- Comment réveiller un thread après un temps écoulé:
CreateWaitableTimer(), OpenWaitableTimer(), SetWaitableTimer(), CancelWaitableTimer().
- Ces fonctions permettent de synchroniser des threads, fort utile par exemple
- pour attendre la terminaison de tous les Threads,
- ou encore pour attendre "l'autorisation d'accès à un mutex ou sémaphore",
- ou la réception d'un évènement,
- ou enfin le déclenchement d'un timer.
Remarque:Pour ceux qui connaissent déjà Unix,
vous allez trouver ici quelques similitudes avec le system
V IPC : Communications inter-processus. Tout comme au temps du DOS,
Microsoft s'est fortement inspiré du monde Unix... Le paramètrage
(la non portabilité oblige) n'est pas le même, mais l'idée
l'est.