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

Qt Discussion :

QThread et gestion de la mémoire


Sujet :

Qt

  1. #1
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut QThread et gestion de la mémoire
    Bonjour,

    J'ai un doute, et je ne trouve rien de précis dans la doc...

    Si je lance un thread (en utilisant la classe QThread) et que dans ce thread, j'alloue différents objets (avec des "new"), QObject ou pas, lors de la fin de l'exécution du thread et la destruction du QTread, est-ce que toute la mémoire allouée par le thread est libérée "automatiquement" ?

    Ou seulement pour les QObject (comme d'hab) ?

    En gros, est-ce que la mémoire allouée au sein d'un thread est libérée à la destruction du thread ? (comme un processus)

    Merci.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par buzzkaido Voir le message
    est-ce que toute la mémoire allouée par le thread est libérée "automatiquement" ?
    non

    Ou seulement pour les QObject (comme d'hab) ?
    si tu as alloué avec un new et qu'ils n'ont pas de parent : non

    Citation Envoyé par buzzkaido Voir le message
    En gros, est-ce que la mémoire allouée au sein d'un thread est libérée à la destruction du thread ? (comme un processus)
    .
    Donc non

    Si tu doit utiliser des new, le mieux :
    *QObject : utiliser le système de parent/enfant (/!\ le parent ça ne peut pas être le QThread et il doit être créé dans le thread) des smartPtr
    *tous le reste : des smart ptr

    Qt en fournie quelques un et la Stl fournie std::auto_ptr
    Tous dépend ce que tu as besoin de faire.

  3. #3
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Merci, c'est bien ce que je pensais... maintenant j'en suis sûr !

Discussions similaires

  1. Réponses: 17
    Dernier message: 02/02/2006, 12h03
  2. gestion de la mémoire
    Par moldavi dans le forum C++
    Réponses: 17
    Dernier message: 04/02/2005, 23h18
  3. Réponses: 11
    Dernier message: 26/12/2004, 22h50
  4. Gestion de la mémoire entre plusieurs DLL
    Par Laurent Gomila dans le forum C++
    Réponses: 7
    Dernier message: 27/07/2004, 15h28
  5. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44

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