Développer un programme multithreadé en c sous linux

Signaler
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005
-
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005
-
Bonjour à Tous,

Vos idées, suggestions ou codes sur le sujet ci dessus:

" Developper un programme multithreadé en c (sur linux) pour simuler n utilisateurs se connectant par UID et Password. Le programme devra loger les connexions ok et nok (et la raison), ainsi que le temps utiliser pour la connexion par utilisateur."

Merci et A bientot.

2 réponses

Messages postés
2
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
18 octobre 2005

#include <stdio.h>

#include <stdlib.h>

#include

#include <semaphore.h>



static sem_t mon_sem;

int the_end;



void *thread1(void *arg)

{

while(!the_end)

{

printf("j'attends une place ! \n");

sem_wait(&mon_sem);

printf("je rentre dans le parking ! \n");

sleep(1);

// printf("je sors du parking ! \n");

sem_post(&mon_sem);

}

printf("Parking plein !\n");

pthread_exit(0);

}



void *thread2(void *arg)

{

register int i;

for(i=0; i<5; i++)

{

printf("voiture %d !\n", i);

sem_post(&mon_sem);

sleep(1);

}

the_end = 1;

sem_post (&mon_sem); /*pour débloquer le dernier sem_wait*/

pthread_exit(0);

}



int main(int argc, char **argv)

{

pthread_t th1, th2;

void *ret;

sem_init(&mon_sem, 0, 0);



if(pthread_create(&th1,NULL,thread1,"1") < 0)

{

fprintf(stderr, "erreur thread 1 \n");

exit(1);

}

if(pthread_create(&th2,NULL,thread2,"2") < 0)

{

fprintf(stderr, "erreur thread 2 \n");

exit(1);

}

(void)pthread_join(th1, &ret);

(void)pthread_join(th2, &ret);

return 0;

}
Messages postés
27
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 août 2005

MERCI !

J'ai créé les threads, chaque thread doit lire un nom d'ytilisateur et un mot de passe avant l'authentification. Comment dois je faire pour synchroniser l'accés à ce fichier ?