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

C# Discussion :

ThreadPool priorité - process - thread


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut ThreadPool priorité - process - thread
    Bonjour,

    J'ai une application qui se compose de plusieurs services Windows. Il y a un service A qui doit avoir une priorité élevé, et un service B qui doit avoir une priorité moyenne. Ces deux utilisent le ThreadPool du framework. Dans le ThreadPool, tous les threads sont traités de la même priorité, avec la priorité Normal.

    Finalement, si j'ajoute des Threads au ThreadPool de A et au ThreadPool de B, y aura-t-il une gestion de priorité ou les deux ThreadPools seront égaux? Autrement dit, est-ce que le Framework combine la priorité du process et de ces threads pour définir un niveau de priorité, ou seul la priorité du thread est prise en compte ?

    J'espère que je ne parle pas chinois...

    Merci de votre aide!

  2. #2
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Voilà, réponse trouvée. Le plus simple était de faire une appli de test, plutôt que de se baser sur la théorie... J'ai donc fait 6 applications (une pour chaque niveau de priorité de process) qui lancent chacune 30 threads dans le ThreadPool. Chacun de ces thread a besoin de 100% du CPU. Si je lance les trois applications en même temps, on vois très bien que la priorité est d'abord mise sur : RealTime, puis High, puis AboveNormal, puis Normal, puis BelowNormal, et enfin Idle.

    Donc le Framework ou le processeur combine la priorité du process et du thread pour définir ses priorités. Par contre, je ne sais pas ce qui se passe dans le cas ou un process avec Priority=High lance un Thread avec Priority=Lowest, et simultanément un Process avec Priority=Idle lance un Thread avec Priority=Highest. Dans mon cas, cela ne se pose pas car j'ai tous mes Threads au même niveau de priorité, soit Normal. C'est une contrainte du ThreadPool du FrameWork !

    J'ai joint le code source de mon application de test pour les intéressés...

    Fichiers attachés Fichiers attachés

  3. #3
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Citation Envoyé par stephane.julien Voir le message
    Par contre, je ne sais pas ce qui se passe dans le cas ou un process avec Priority=High lance un Thread avec Priority=Lowest, et simultanément un Process avec Priority=Idle lance un Thread avec Priority=Highest.
    Voilà la réponse :
    http://msdn2.microsoft.com/fr-fr/lib...ss(VS.80).aspx

    La priorité du Process prime ! C'est normal...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut
    Merci pour ton code, ça me servira d'exemple quand j'en aurai besoin !

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

Discussions similaires

  1. Pb priorite de thread
    Par Signal40 dans le forum POSIX
    Réponses: 2
    Dernier message: 12/12/2009, 22h38
  2. [WD14] Priorité de Thread
    Par mail.spam dans le forum WinDev
    Réponses: 1
    Dernier message: 12/10/2009, 05h15
  3. Executors et priorité de thread
    Par snyouf dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 13/01/2009, 09h54
  4. problème de priorité des threads
    Par wauant dans le forum C
    Réponses: 4
    Dernier message: 18/04/2007, 08h51
  5. problème de priorité des threads
    Par wauant dans le forum Développement
    Réponses: 1
    Dernier message: 12/04/2007, 10h49

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