CodeName47 | Bonjour à tous ! Je pense que le titre est assez explicite J'ai fait des recherches sur ce forum, j'ai pas trouvé grand chose que je pouvais comprendre quels avantages présentent les threads ?
pour ma part j'en ai besoin pour pouvoir lancer simultanément deux processus !
je programme en C++ sous windows et j'ai fini par trouver un morceau de code utilisant l'api windows et montrant clairement et hyperfacilement comment lancer plusieurs processus simultanément :
Code :
- #include "stdio.h"
- #include "windows.h"
- #include "process.h"
- #include "winbase.h"
- // déclaration de la section critique
- // code de la première tâche : PremierThread
- DWORD WINAPI PremierThread ( LPVOID IpvThreadParam )
- {
- int i ;
- char chaine [ 8 ] = "BONJOUR" ;
- // Entrée en section critique
- for ( i = 0 ; i < 7 ; i++ )
- {
- printf ( "%c", chaine [ i ] );
- Sleep ( 10 ) ;
- }
- // Libération de la section critique
- return ( 0 ) ;
- }
- // code de la seconde tâche : SecondThread
- DWORD WINAPI SecondThread ( LPVOID IpvThreadParam )
- {
- int i ;
- char chaine [ 8 ] = "BONSOIR" ;
- // Entrée en section critique
- for ( i = 0 ; i < 7 ; i++ )
- {
- printf ( "%c" , chaine [ i ] ) ;
- Sleep ( 10 ) ;
- }
- // Libération de la section critique
- return ( 0 ) ;
- }
- // point d'entrée du programme
- void main ( )
- {
- // Initialisation de la section critique
- HANDLE hThreads [ 2 ] ;
- DWORD dwThreadId ;
- DWORD dwThreadParam = 1 ;
- // création des Threads
-
- hThreads [ 0 ] = CreateThread ( NULL, NULL, PremierThread, &dwThreadParam, 0, &dwThreadId ) ;
- hThreads [ 1 ] = CreateThread ( NULL, NULL, SecondThread, &dwThreadParam, 0, &dwThreadId ) ;
- // attente de fin d'exécution des Threads
- WaitForMultipleObjects ( 2, hThreads, TRUE, INFINITE) ;
- // destruction des Threads et de la section critique
- CloseHandle ( hThreads [ 0 ] ) ;
- CloseHandle ( hThreads [ 1 ] ) ;
- // destruction de la section critique
- }
|
on voit clairement dans ce code comment lancer les deux processus en meme temps, j'ai essayé avec un troisième ca passait parfaitement
je voudrais savoir (du plus simple possible) comment coder l'équivalent de ce programme sans utiliser l'API windows !
je rappelle que je code sous windows !
voila
J'attends vos remarques et vos conseils avec impatience
Merci à tous ! Message édité par CodeName47 le 03-09-2003 à 23:24:22
|