Académique Documents
Professionnel Documents
Culture Documents
#include <stdio.h>
#include <pthread.h>
int main() {
pthread_t my_thread;
if (pthread_create(&my_thread, NULL, thread_function, NULL)) {
printf("Erreur lors de la création du thread.\n");
return 1;
}
printf("Bonjour du thread principal !\n");
pthread_join(my_thread, NULL);
return 0;
}
#include <stdio.h>
#include <pthread.h>
int main() {
pthread_t threads[5];
char *messages[] = {"Bonjour", "du", "thread", "1", "!"};
int i;
for (i = 0; i < 5; i++) {
pthread_create(&threads[i], NULL, afficher_message, (void*)
messages[i]);
}
for (i = 0; i < 5; i++) {
pthread_join(threads[i], NULL);
}
return 0;
}
• Utilisation d'un verrou pour protéger l'accès à une variable partagée : Ce
programme crée cinq threads qui incrémentent une variable partagée
"compteur" un million de fois chacun. Pour éviter les conflits d'accès à la
variable partagée, un verrou est utilisé pour synchroniser l'accès à la variable.
#include <stdio.h>
#include <pthread.h>
int compteur = 0;
pthread_mutex_t verrou = PTHREAD_MUTEX_INITIALIZER;
int main() {
pthread_t threads[5];
int i;
for (i = 0; i < 5; i++) {
pthread_create(&threads[i], NULL, incrementer_compteur, NULL);
}
for (i = 0; i < 5; i++) {
pthread_join(threads[i], NULL);
}
printf("La valeur du compteur est %d.\n", compteur);
return 0;
}