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 :

Ajuster les priorités des threads


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 38
    Points
    38
    Par défaut Ajuster les priorités des threads
    Bonjour,

    J'ai X threads qui communiquent via Message queue. Une émet, les autre reçoivent (chaque récepteur ayant sa propre message queue). Dans certains cas, l'émetteur est plus rapide que le récepteur. Du coup, la message queue se remplit jusqu'à être pleine.

    Pour gérer ce genre de problème, je me suis dit que je pouvais jouer avec les priorités des deux threads en question. En y réfléchissant, je vois trois solutions:

    - Côté émetteur: lorsque la message queue est pleine ou un peu avant, diminuer sa priorité en la rendant inférieur à la tâche réceptrice.
    Problème: Comment réhausser la priorité, sachant que j'ai perdu la main puisque l'émetteur n'est plus prioritaire.

    - Côté récepteur: lorsque la message queue est pleine ou un peu avant, augmenter sa priorité.
    Problème: Entre le moment ou je décide de l'augmenter, il se peut que l'émetteur ai essayé d'envoyer plusieurs messages. Ce problème pourrait être résolu en décidant de changer la priorité du récepteur AVANT que la message queue ne soit pleine.

    - En utilisant une tierce thread, de haute priorité, qui s'occuperait de gérer la priorité des autres theads.

    En bref, je vois plusieurs solutions mais je me demande laquelle est utilisée dans la pratique.

    Cordialement,

    Julien.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    N'as-tu pas moyen de gérer ça côté émetteur en mesurant le niveau de remplissage des queues? Si la thread émettrice voit les queues dépasser une certaine cote d'alarme, elle se met en sommeil un certains temps.
    Pour permettre d'optimiser au runtime, tu devrais peut-être prévoir une taille max de queue et un temps de sommeil paramétrables...

  3. #3
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Quelle est la cadence (moyenne) d'envoi des messages ?

    En combien de temps (moyenne) un message est-il traité ?

    Est-il important que tous les messages soient traités ?

    Ralentir l'émetteur ne va-t-il pas créer de problème ?

    Si on peut ralentir l'émetteur, alors on peut bufferiser les messages.

    Si on bufférise et que l'on explose la mémoire, il y a un problème.

Discussions similaires

  1. [QtConcurrent] QtConcurent & QFuture avec priorité des threads
    Par laumaya dans le forum Multithreading
    Réponses: 4
    Dernier message: 13/03/2010, 18h16
  2. question sur les priorités des styles.
    Par Sniper37 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/06/2007, 17h16
  3. problème de priorité des threads
    Par wauant dans le forum C
    Réponses: 4
    Dernier message: 18/04/2007, 08h51
  4. problème de priorité des threads
    Par wauant dans le forum Développement
    Réponses: 1
    Dernier message: 12/04/2007, 10h49
  5. Gerer les exceptions des Threads
    Par petozak dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 21/11/2006, 13h27

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