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

Python Discussion :

[Thread] explication sur les threads [Fait]


Sujet :

Python

  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut [Thread] explication sur les threads
    Bonsoir, j'aurais besoin de quelques infos sur les threads.

    Je travaille sur un projet qui necessite que plusieur script soit déclenché en même temps (un pour créer une image, un pour mettre a jour l'affichage de l'interface, .....)

    Jusqu'a présent même si j'ai développé en POO avec python (qui est d'ailleurs le seul language que je connaisse), mes prog ont toujours un principe de fonctionnement mono tache.

    Est ce bien en utilisant la classe Thread que je peux créer plusieurs processus pour un seul logiciel? Si oui, ou puis je trouver des exemples de code ou des tutos.

    Je ne connais pas du tout le principe des threads? qqu'un peut il me donner qques explications simples pour bien comprendre.

    merci

  2. #2
    Membre actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 276
    Points
    276
    Par défaut
    Ah les Threads !! super pratique et super simple aussi (indispensable d'ailleur quand il s'agit de développer une application serveur qui doit écouter pleins de clients !! m'enfin bon passons !)

    Je te fais un exemple tout simple qui va t'afficher un texte toute les 10 secondes !! (rapidement lourd l'exemple )

    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
     
    import threading
    import time
     
    class MaClasseThread(threading.Thread):
       def __init__(self):
          threading.Thread.__init__(self)
          self.i = 1
     
       def run(self):
          while 1:
             time.sleep(10)
             print self.i
             self.i += 1
     
    th = MaClasseThread()
    th.start()
    Et là tu peux continuer à t'amuser à faire ce que tu veux dans le processus principal, le thread est lancée !
    Le time.sleep est important parce que si tu le met pas :
    1 - ça va pas arrêter de t'écrire des nombres
    2 - y'a ton processeurs qui va pas apprécier (et tout les autres processus de ton PC n'ont plus d'ailleur ^^)

    Moi en général je met un time.sleep(0.1) mais après ça dépend de ton utilisation. Ex dans le cas de sockets où tu écouterais tes clients, là tu as une fonction qui bloque ton processus jusquà ce qu'il reçoive quelque chose (d'où l'importance du thread), enfin tout ça pour dire que dans ce cas pas besoin de time !!

    Sinon un autre truc interressant :
    Si tu as besoin d'arréter ton Thread (par exemple à la fermeture de ton application) :


    Encore autre chose :
    le 'run', c'est la méthode qui est lancée pas le 'start' donc tu dois forcément la dérivée et garder ce nom là !!! mais je pense que c'était évident.

    Voilà je pense avoir dit le principal
    Bankaï !!

  3. #3
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    Merci, ca je comprend bien, mais aurais tu un exemple qui traite plusieures tâches en même temps.
    comment dois je faire pour a la fois régénérer l'affichage dans une interface et en même temps éxécuter une fonction.

    c'est un peu fouilli dans ma tête......

    A+

  4. #4
    Membre actif
    Avatar de Wormus
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 276
    Points
    276
    Par défaut
    Je ne suis pas sûr de savoir ce que tu n'as pas compris !!

    Là j'ai pas vraiment d'exemple sous la main (enfin de code)

    Tu travailles avec du wxPython ?? (si c'est le cas j'essaierais de t'expliquer avec un exemple utilisant du wxPython)
    Bankaï !!

  5. #5
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    ok,
    Je travaille avec Tkinter/Tix/PMW

    Je commence a y voir un peu plus claire. en fais il faut que je code pour répondre par moi même au intérrogations propre a mon projet.
    je te remercie pour ton exemple.

    merci

    => FAQ: http://python.developpez.com/faq/?page=Thread

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

Discussions similaires

  1. Besoin d'explications et de conseils sur les threads
    Par matteli dans le forum Développement 2D, 3D et Jeux
    Réponses: 12
    Dernier message: 02/03/2008, 17h27
  2. Question sur les threads
    Par Linio dans le forum Concurrence et multi-thread
    Réponses: 10
    Dernier message: 21/10/2005, 09h08
  3. Question sur les threads
    Par nicolas66 dans le forum MFC
    Réponses: 4
    Dernier message: 03/06/2005, 20h57
  4. Aide sur les Threads
    Par themoye dans le forum MFC
    Réponses: 24
    Dernier message: 06/03/2005, 15h02
  5. Question simple sur les threads :)
    Par momox dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2003, 04h13

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