Développer un programme multithreadé en c sous linux

saerlo Messages postés 27 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 30 août 2005 - 16 avril 2005 à 11:20
saerlo Messages postés 27 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 30 août 2005 - 18 oct. 2005 à 11:25
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

popolinus83 Messages postés 2 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 18 octobre 2005
18 oct. 2005 à 10:36
#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;

}
0
saerlo Messages postés 27 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 30 août 2005
18 oct. 2005 à 11:25
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 ?
0
Rejoignez-nous