les threads : comment ça fonctionne ?
Bonjour,
voici un petit exemple d'utilisation de thread :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| // On inclue les fichiers standard et le header pthread.h
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
void* maFonction(void* data);
int main()
{
int i;
pthread_t thread;// On crée un thread
pthread_create(&thread, NULL, maFonction, NULL);// Permet d'exécuter le fonction maFonction en parallèle
// Affiche 50 fois 1
for(i=0 ; i<50 ; i++)
printf("1");
// Attend la fin du thread créé
pthread_join(thread, NULL);
return 0;
}
void* maFonction(void* data)
{
int i;
// Affiche 50 fois 2
for(i=0 ; i<50 ; i++)
printf("2");
return NULL;
} |
Est-ce que quelqu'un peut m'expliquer comment ça fonctionne exactement une library de ce type ? => je n'arrive pas à comprendre comment dans le bout de code suivant (dans le main), le programme bascule sur le code de la fonction du thread puis revient dans la boucle (il n'y a aucuns tests qui permet d'interrompre la boucle) :
Code:
1 2 3
| // Affiche 50 fois 1
for(i=0 ; i<50 ; i++)
printf("1"); |
si vous avez un exemple simplifié/commenté de ce type de library je suis preneur ;) ...