1. #1
    Invité régulier
    Inscrit en
    août 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 39
    Points : 7
    Points
    7

    Par défaut priorité sur des threads

    Bonjour,

    J'ai actuellement un process exe (py2exe) que je place en priorité haute comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    p = psutil.Process(os.getpid())
    p.set_nice(psutil.HIGH_PRIORITY_CLASS)
    p.set_cpu_affinity([0])
    Ensuite, je lance 2 threads (modules threading):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    th_Listen = threading.Thread(target = checkMsgThread)
        th_Listen.start()
     
        th_Report = threading.Thread(target = reportThread)
        th_Report.start()
    Le th_Report fonctionne bien tout le temps même quand la bécane est à 100% d'utilisation processeur à cause d'autres programmes, par contre le th_Listen ne fonctionne plus (check de message tcp avec zmq, il ne reçoit plus rien quand le cpu est à 100%)

    Je ne maitrise pas bien tout çà, mais comment faire pour que les deux threads continuent de tourner normalement même quand une autre appli prend tout le temps cpu restant ? (mes threads sont minime en cpu, avec que çà le cpu reste à 0% alors que tout fonctionne bien).

    Merci,
    Kib

  2. #2
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 722
    Points : 3 958
    Points
    3 958

    Par défaut

    Bonjour,

    th_Report et th_Listen sembles s'occuper de la partie communication :
    th_Report aussi utilise zmq ? Quelle est sa fonction ? send ?
    Je ne connais pas zmq mais il me semble qu'il utilise pour le send des buffers pour les messages gérés par des threads de communication internes au Context, ceci afin de ne pas être 'bloquant'. Je ne sais pas s'il en est de même pour recv (A vérifier dans la doc.) : Si ce n'est pas le cas cela pourrais, peut-être, expliquer la chose.
    A prendre avec de pincettes car pures élucubrations dominicales.

    Je sais que c'est moins 'efficace' mais avez vous tester juste avec socket ?

    Un petit test de multiprocessing avec élévation de la priorité du process ?
    L'exemple de la doc multiprocessing pour l' id du process :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    from multiprocessing import Process
    import os
     
    def info(title):
        print title
        print 'module name:', __name__
        if hasattr(os, 'getppid'):  # only available on Unix
            print 'parent process:', os.getppid()
        print 'process id:', os.getpid()
     
    def f(name):
        info('function f')
        print 'hello', name
     
    if __name__ == '__main__':
        info('main line')
        p = Process(target=f, args=('bob',))
        p.start()
        p.join()
    Après vous connaissez les win32process.HIGH_PRIORITY_CLASS et autres.

    @+
    Merci d'utiliser le forum pour les questions techniques.

Discussions similaires

  1. Utilisation des Delegate sur des Threads
    Par Freud44 dans le forum C#
    Réponses: 5
    Dernier message: 14/01/2010, 11h40
  2. problème de priorité des threads
    Par wauant dans le forum Développement
    Réponses: 1
    Dernier message: 12/04/2007, 10h49
  3. Avis sur la bonne utilisation des Threads
    Par Pitivier dans le forum Général Java
    Réponses: 8
    Dernier message: 28/11/2006, 20h07
  4. Question sur la synchronisation des threads.
    Par sebastieng dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 07/12/2005, 15h55
  5. question sur le comportement des threads
    Par rose-bonbon dans le forum CORBA
    Réponses: 4
    Dernier message: 27/10/2004, 18h00

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