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

Tomcat et TomEE Java Discussion :

Java Heap Space - Threads non libérés ?


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut Java Heap Space - Threads non libérés ?
    Bonjour,

    j'utilise Tomcat 6.0.18 avec java 1.6.0_07 et je rencontre des difficultés à gérer la mémoire.
    En fait au bout d'un certain temps j'obtiens un Java Heap Space.

    Dans la méthode doGet() de ma Servlet, j'ai besoin de créer un Thread et d'attendre la fin de son exécution avec un monThread.join().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Thread thread = new Thread(action); // action est une classe qui implémente Runnable
    thread.start();
    thread.join();
    Mais j'ai l'impression que bien que la méthode doGet() soit finie, il me reste encore les Threads en mémoire dans l'état "sleeping".

    Quelqu'un a-t'il déjà eu ce type de problème ? et comment le corriger ?
    merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si il sont en sleeping, c'est que le thread n'a pas fini mais qu'au contraire, il est en attente de quelque chose (lock, etc. donc ca sent le deadlock).

    Y a-t-il un raison particulère d'invoquer le travail dans un thread séparé? En J2EE on évite de créer des threads généralement.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut
    Nous essayons effectivement d'éviter d'utiliser des Threads, mais c'est un cas particulier où nous avons besoin de faire un traitement particulier dans un Thread.

    Par contre, je suis sure que le thread exécute bien le monThread.join() puisque le code juste après s'exécute. Ce que je ne comprend pas c'est que le Thread reste en mémoire alors que pour moi il a terminé de travailler. Est-ce que je rate quelque chose ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il peux rester des objet Thread en mémoire, si tu en garde des références quelque part. Par contre, si join a été atteind il ne peuvent plus être des threads dans le sens "pile d'éxécution", et donc ne peuvent pas être dans un état sleeping. Et, personellement, il me semble que si c'est pour faire


    t = new Thread() {....};
    t.join();

    autant faire directement un new Thread(){....}.run(), qui appellera le run sans détacher un nouveau thread.

    Pour saovir un peux plus ce qui foire, va falloir qu'on voie le code du thread et ce qu'il fait.

Discussions similaires

  1. Java Heap space - threads
    Par nabich dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 06/11/2011, 08h58
  2. Réponses: 4
    Dernier message: 22/12/2010, 22h25
  3. Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    Par Edna24 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 03/06/2009, 11h19
  4. Eclipse erreur : java.lang.OutOfMemoryError: Java heap space
    Par sderecourt dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/04/2006, 11h28
  5. [ memoire ] Java Heap Space
    Par natha dans le forum Général Java
    Réponses: 10
    Dernier message: 23/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