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

Java Discussion :

Un thread fini reste t'il en mémoire ?


Sujet :

Java

  1. #1
    Membre régulier Avatar de freelibre
    Profil pro
    Inscrit en
    février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 68
    Points : 76
    Points
    76
    Par défaut Un thread fini reste t'il en mémoire ?
    Bonjour,

    je fait un programme multi threding pour lire un fichier audio je fait comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    new Thread(new Runnable() {
    public void run() {
    InputStream stream = new ByteArrayInputStream(audio.getSamples());
    audio.play(stream);
    }
    }).start();
    Après mon thread est fini


    je voudrais savoir si la méthode dans laquelle se trouve cette portion de code est appelée plusieurs foi dans le code je risque pas ad'avoir à l'avenir des problème de mémoire ??

    j'ai fait un petit profiling avec java VisualVM je vois que la liste des threds finished augment.
    Un thred fini reste t'il en mémoire ??
    il est supprimer automatiquement par le GC ??


    Merci de vois lumières
    Le Partage est notre Force !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Un thread n'est plus actif lorsqu'il se termine (d'où l'utilité de la méthode isAlive à savoir s'il a terminé son cycle de vie). Il n'a donc plus d'espace mémoire affecté.

  3. #3
    Membre éprouvé
    Inscrit en
    mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : mars 2006
    Messages : 848
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    si tu es amené à créer un nombre important de threads, il peut être plus judicieux d'utiliser un ExecutorService adapté (récupérable via une méthode static de Executors).

    Il gérera les threads et t'évitera de prendre de la mémoire.

    Ceci dit, je suis à peu près sûr que tout ce qui appartenait aux threads morts (et non référencés) est récupéré par le GC.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 25 481
    Points : 48 794
    Points
    48 794
    Par défaut
    le GC est fénéant, si il n'y a pas nécessité, il n'ira pas réclamer la mémoire. C'est pour ça que vous les voyez toujours dans visualvm.

  5. #5
    Membre régulier Avatar de freelibre
    Profil pro
    Inscrit en
    février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 68
    Points : 76
    Points
    76
    Par défaut Merci pour vos lumières
    Merci pour ces explications très clair

    @Deaf je vais voir plus en détail cette piste

    @tchize_ Merci jolie chapeaux de père noël riire.

    @ep31 merci

    bonne continuation à tous
    Le Partage est notre Force !

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 25 481
    Points : 48 794
    Points
    48 794
    Par défaut
    Citation Envoyé par freelibre Voir le message
    @tchize_ Merci jolie chapeaux de père noël riire.
    on se moque pas!

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

Discussions similaires

  1. Lancer un thread qui reste en écoute sur un port
    Par maestro_mirou dans le forum Threads & Processus
    Réponses: 3
    Dernier message: 02/04/2012, 11h39
  2. Probleme de thread : application reste figé
    Par haffouff dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2007, 15h57
  3. [Thread du Swing] Rend-moi la main quand t'as fini!
    Par janef dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 25/02/2006, 16h51
  4. Réponses: 10
    Dernier message: 13/02/2006, 09h30
  5. Réponses: 1
    Dernier message: 16/01/2006, 11h15

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