#include //pour utiliser la procedure sleep #include // pour utliser les pthread,.... #include // pour utliliser les fonctions : printf,... int glob=0; // variable partag� void* Processus_P1 (void * x) { sleep(10); glob = glob + 2; printf("ici Processus_P1 [%d], glob = %d\n",pthread_self(), glob); pthread_exit(NULL); } void* Processus_P2 (void * x) { sleep(1); glob = glob - 1 ; printf("ici Processus_P2 [%d], glob = %d\n",pthread_self(),glob); pthread_exit(NULL); } int main( ) { pthread_t tid1, tid2; printf("ici main[%d], glob = %d\n", getpid(),glob); //creation d'un thread pour Processus_P1 if ( pthread_create(&tid1, NULL, Processus_P1 , NULL) != 0) return -1; printf("ici main: creation du thread[%d] avec succes\n",tid1); // creation d'un thread pour Processus_P2 if ( pthread_create(&tid2, NULL, Processus_P2 , NULL) != 0) return -1; printf("ici main: creation du thread [%d] avec succes\n",tid2); // attendre la fin des threads pthread_join(tid1,NULL); pthread_join(tid2,NULL); printf("ici main : fin des threads, valuer finale de glob = %d \n",glob); return 0; }