Salut All !
voila j'aimerais me renseigner un peu sur les Thread...Je dois developper un prog qui recupere des message sur un port et qui les traite.seulement le nombre de message est enorme et je pensai a chaque message recu lui affecter un nouveau thread ki le traite et se tue comme ca le prog continu a scanner... Je demarre egalement des Thread dans un Thread deja creer ... C'est bien ?
voila ce que j'ai fait j'aimerais savoir ce que vous en penser ...Je debute dans le domaine ^^
Je ne vais mettre que les partie importante car le code est long.
[code]
void * tag_log(void * arg)
{
//traitement coupé
//appel d'une autre fonction (pas un thread...)
pthread_exit(0);
}
//**********************************************
bool filtre_client(MYSQL* my, char ip[], char mess[])
{
pthread_t th_tag;
//traitement de filtrage coupé
//démarrage du thread de tag
if (pthread_create (&th_tag,NULL,tag_log,message) == 0)
{
pthread_detach(th_tag);
}
else
{
printf("\nImpossible de démarrer le Thread de Tag\n");
}
}
//**********************************************
void * start_ecoute(void * arg)
{
//code coupé
while(1)
{
//(code coupé) reception du message
filtre_client(mysqlco,ip,line) == false
}
}
//**********************************************
int main()
{
pthread_t th_ecoute;
//démarrage du thread d'éoute UDP
if (pthread_create (&th_ecoute,NULL,start_ecoute,NULL) == 0)
{
printf("Thread de D' Ecoute Syslog Demarre...\n\n");
}
else
{
printf("Impossible de démarrer le Thread D' Ecoute Syslog\n\n");
}
pthread_detach(th_ecoute);
//Attente de la fin du Thread (inutil car programme "infini")
//(void)pthread_join (th_liste,NULL);
return 0;
}
//**********************************************
[/code]
Bon voila j'ai mis vraiment que l'essentiel c'est a dire ce qui concerne les thread.Je ne sais pas en fait si cela fait vraiment bien ce que je veux car sous linux (console) je n'arrive pas a oir si des thread sont crées a partir de processus. J'ai vraiment besoin que le prog perde le moins de temp possible et comme les traitement sont long ... il faut que chaque message soit traiter dans un processus detaché du principal !Bien que la je le recois, fait un 1er filtrage puis si le message passe c'est la que je demarre un autre thread...
Merci d'avance ! ++