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

Modules Perl Discussion :

Threads : erreur running


Sujet :

Modules Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 75
    Points : 38
    Points
    38
    Par défaut Threads : erreur running
    Bonjour,

    Pour lancer plusieurs proc, au lieu de lancer DANS plusieurs fenetres DOS mon proc, je fais des threads

    J'ai l'impression qu'il prendre un peu plus de temps (par rapport à l'excéution sur fenetres DOS) et surtout il y a une erreur que je ne comprends pas trop

    "A thread exited while 3 threads were running"

    PS: '3' est un exemple, ça peut 2,4.....





    #!/usr/bin/perl -w
    use threads;
    my($thr1);


    $thr1 = threads->new(\&sub1, "Param 1","1.txt");
    $thr1 = threads->new(\&sub1, "Param 2","2.txt");
    $thr1 = threads->new(\&sub1, "Param 3","3.txt");
    $thr1 = threads->new(\&sub1, "Param 4","4.txt");
    $thr1 = threads->new(\&sub1, "Paraaaaa","5.txt");
    @DonneesRenvoyees = $thr1->join;

    print "Le thread a renvoyé @DonneesRenvoyees";

    #***************************************************************************

    sub sub1 {
    my ($num,$fileO) = @_;
    open(FILEIN,">$fileO") ;
    if ($num eq "Paraaaaa"){
    return ("ERREUR FICHIER");
    }
    for( my $i=0; $i<=10000; $i+=1 ){
    #print ("Dans le thread : ".$num.":".$i."===".$toto."\n");
    print (FILEIN "Dans le thread : ".$num.":".$i."\n");
    }
    close(FILEIN);
    return ("FIN OK");
    }



    }

    savez vous pourquoi ?

    Merci

    Cathy

  2. #2
    Membre actif Avatar de mobscene
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 331
    Points : 234
    Points
    234
    Par défaut
    Heu je dirais que c'est parce que ton thread1 join alors que les autres non.

    De plus tu n'utilise ni lock ni semaphore pour empecher tes threads de ce marcher dessus.

    Je te conseille aussi d'installer la dernière versions des threads perl http://search.cpan.org/~jdhedden/thr....61/threads.pm la stabilité c'est améliorer m'empeche que les threads perl ne sont pas top , tu peut les utiliser si tu ne fait pas trop d'opérations exotique
    Everybody have in their the potential to be their own god : Marilyn Manson

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 75
    Points : 38
    Points
    38
    Par défaut super
    merci pour ta réponse,
    ça fonctionne avec par ex:

    foreach $thr (threads->list) {
    # Ne pas rejoindre le thread principal ni nous-mêmes
    if ($thr->tid && !threads::equal($thr, threads->self)) {
    ($myResult)=$thr->join;
    }
    }

    cathy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Fortran 90] Comment gérer les erreurs Run Time ?
    Par Truth dans le forum Fortran
    Réponses: 5
    Dernier message: 13/11/2008, 16h46
  2. erreur Run-Time Check Failure #3
    Par ffcool21 dans le forum C++
    Réponses: 7
    Dernier message: 29/04/2008, 16h34
  3. erreur run time
    Par solar dans le forum C
    Réponses: 2
    Dernier message: 17/03/2008, 14h10
  4. [MFC] thread : erreur bloquante
    Par Joeleclems dans le forum MFC
    Réponses: 4
    Dernier message: 20/05/2005, 13h58
  5. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15

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