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

Multithreading Discussion :

QThread versus QRunnable ?


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut QThread versus QRunnable ?
    Bonjour à tous,

    je voudrais mettre en place un pool de threads dans mon programme, si je lis la doc Qt, il faut utiliser QThreadPool pour stocker et lancer mes threads qui sont des classes que je dérive de QRunnable, jusque là tout va bien

    Par contre, ce qui m'inquiète c'est que je voudrais avoir un certain "contrôle" sur mes threads dans mon programme (notamment les mettre en pause, killer un thread, etc...) et QRunnable offre beaucoup moins de méthodes que QThread, pas de sleep(), pas de isRunning(), etc...

    J'ai vu aussi que QThreadPool hérite de QObject une méthode thread() qui renvoie un pointeur sur un QThread, mais s'il y a plusieurs threads dans le pool, il renvoie lequel ???

    Merci d'avance pour vos réponses...

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par thm.devt Voir le message
    Par contre, ce qui m'inquiète c'est que je voudrais avoir un certain "contrôle" sur mes threads dans mon programme (notamment les mettre en pause, killer un thread, etc...)
    Si tu doit faire tous ceci, quel serait l'intérêt d'utiliser un pool de thread?
    Le pool de thread est surtout pour gagner du temps sur des traitements cours ou la création d'un thread est trop importante.
    Par contre "killer un thread" est à éviter au maximum.

    J'ai vu aussi que QThreadPool hérite de QObject une méthode thread() qui renvoie un pointeur sur un QThread, mais s'il y a plusieurs threads dans le pool, il renvoie lequel ???
    Aucun d'eux. Le QThread retourné par un QObject est le QThread qui possède l'eventloop utilisé par le QObject.


    Donc tous dépend ce que tu veut faire.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour cette réponse.
    Je pense avoir compris, en fait je voulais me servir du pool uniquement pour stocker les différents threads que j'allais lancer, dans ce cas, un simple map avec le threadID et le pointer sur le thread lui-même suffira.
    Quand je disais "killer un thread", je l'entendais au niveau de mon programme par appel à quit() (si lancé par exec()) ou par terminate() et non en faisant un kill au niveau de l'os.
    Comme je te l'ai expliqué dans mon 1er mail (que j'aurais dû poster ici ), je compte lancer des threads qui ne seront arrêtés que par l'utilisateur ou à la fermeture du programme, dans ce cas il faut bien que ce soit moi qui les détruise.

    Encore merci pour ces éclaircissement
    Bonne journée

    PS : je suis nouveau ici, je n'ai rien vu pour mettre mon post en [Résolu]

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par thm.devt Voir le message
    PS : je suis nouveau ici, je n'ai rien vu pour mettre mon post en [Résolu]
    le bouton en bas

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'attendais ta réponse
    Je cherchais le bouton résolu avant d'envoyer ma réponse et une fois envoyée le l'ai vu gros comme une maison au milieu de l'écran !
    La fatigue, sûrement...

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

Discussions similaires

  1. [Débat] MERISE versus UML ? Avenir de MERISE ?
    Par Matthieu Brucher dans le forum Méthodes
    Réponses: 51
    Dernier message: 15/02/2022, 17h32
  2. C# versus Java
    Par laffreuxthomas dans le forum C#
    Réponses: 368
    Dernier message: 30/03/2019, 22h59
  3. Que choisir : PHP versus Java ?
    Par Sniper37 dans le forum Général Conception Web
    Réponses: 164
    Dernier message: 28/04/2009, 16h50
  4. Pb SQL versus ACCESS
    Par NOTARO dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 20/07/2004, 09h59

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