IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

utilisations des threads


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut utilisations des threads
    Hello tout le monde!!

    Voilà, je suis entrein de me mettre aux threads. mais j'ai un peu de mal.

    Donc mon but, c'est de lancer un thread qui va écrire dans un fichier à partir d'une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    use threads;
    my $thread;
     
    sub fonction_test(){
     
    	print "On est dans la fonction d'appelle du thread\n";
    	$thread =threads->new(\&fonction_ecriture);
    	$thread->detach; #on se désintéresse du thread.
     
    	print "On est à la fin de la fonction d'appelle du thread\n";
    }
     
    sub fonction_ecriture(){
     
    	my $i=0;
    	open(FILE_TRAITEMENT,">resultat_thread.log");
    	for $i(0..15){
    		print"On est dans la fonction appellée par le thread\n";
    		sleep(1);
     
    	}
     
    	close(FILE_TRAITEMENT);
    }
     
     
    #Main
    &fonction_test();
    Avec ce code je lance le thread et je ne m'en occupe plus (thread->detach). le soucis, c'est qu'il ne se finit pas. A cause de la fin de la fonction_test.

    Est ce que vous pourriez m'indiquer un moyen de créer un thread dans une fonction et de faire en sorte de le laisser s'exécuter jusqu'à sa fin.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Essaye en le remplaçant
    par

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    ouais'y ai pensé, mais dans ce cas là, je vais devoir attendre la fin de l'exécution de mon thread avant de pouvoir passer au reste de l'exécution de mon programme.

    Le but de mon "appli" serait d'écouter un port TCP, écrire tout ce qui vient de ce port dans un fichier et toutes les 15 secondes par exemple, je lance mon thread qui va lire le fichier et traiter les infos. Pendant que le thread fait son traitement, je dois pouvoir continuer l'écoute et l'écriture dans un autre fichier.

    Voilà, merci de votre aide.

  4. #4
    Membre émérite
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Par défaut Solution
    avez-vous trouvé une solution à votre problème?
    ça m'intéresserait assez

    Gérald

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Le thread ne s'arrête pas à la fin de la fonction test, il s'arrête parce que le thread principal a rencontré la fin du programme et termine donc la totalité du processus (autres threads compris).

    En bref il ne faut détacher que les threads qui se termineront avant la fin du programme ou qui effectue une tâche de fond qu'il est censé d'interrompre avant la fin et join()er les autres aux points appropriées.

    --
    Jedaï

Discussions similaires

  1. Avis sur la bonne utilisation des Threads
    Par Pitivier dans le forum Général Java
    Réponses: 8
    Dernier message: 28/11/2006, 20h07
  2. connexion socket utilisant des threads
    Par alceste dans le forum C++
    Réponses: 16
    Dernier message: 14/10/2006, 12h00
  3. [Débutant]Utilisation des Threads
    Par maniolo dans le forum Débuter avec Java
    Réponses: 19
    Dernier message: 10/07/2006, 11h31
  4. Utilisation des threads
    Par Valinor dans le forum Linux
    Réponses: 2
    Dernier message: 30/11/2005, 16h41
  5. Utilisations des Threads
    Par phoenix440 dans le forum Réseau
    Réponses: 15
    Dernier message: 21/08/2005, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo