<troll>Merçi Alioune! Ce code, un jour, je ne sais pas quand, va sauver le monde...</troll>

Le 18/12/2012 18:16, Alioune Dia a écrit :
H iiiii:)
Qu 'est ce que j'ai a voir avec ça moi :)

vous avez deformez mes propos je n'ai pas de problèmes pour travailler avec qui que ce soit , Pour Me faire pardonner cependant j'ai écrit un programme qu j'ai appelé [balance] :) j'aime bien ce nom :). L'idee est de faire travailler trois machines ensembles sans qu'ils ne s'entretuent pas .La machine1 prends des sacs en entrée , ensuite elle dépose les sacs un seau1 , et la machine 2 les prends dans le seau1 et les dépose dans le seau2 .Ensuite la machine 3 vient les prendre du seau3 et les dépose
dans le seau3. un vrai travail d'équipe :)
https://github.com/aliounedia/balance/blob/master/balance.py
# python balance.py

import Queue
import thread , time
from threading import RLock
import threading
class Humain3:
    def __init__(self , manager):
      self.manager =manager

    def run(self):
      while self.manager.run:
          with self.manager.verrou:

              try:
                  sac =self.manager.seau2.get(block =False)
              except Queue.Empty:
                  # le seau est vide
                  print 'seau2 vide'
                  pass
              else:
                  print(''' la machine 3 prend
                    le sac depose par la machine2
                    dans le sceau2
                   ''')
                  print 'sac =',sac
                  try:
                      self.manager.seau3.put(sac)
                  except Queue.Full:
                       # le seau est plein
                       pass
          # nous attendons encore 10 secondes
          # pour voir encore si la machine 2
          # a fait un depot  dans l seau2
          self.manager._wait(10)
      print('''
              Humain3 a fini son travail
              ''')
class Humain2:
    def __init__(self, manager):
        self.manager =manager

    def run(self):
        while self.manager.run:
          with self.manager.verrou:

              try:
                  sac = self.manager.seau1.get(block =False)

              except Queue.Empty:
                  # le seau est vide
                  print 'seau1 vide'
              else:
                  # Nous avons un sac on le depose
                  # dans le seau2 pour que la machine
                  # 2 puisse le prenre :)
                  print(''' la machine 2 prend
                   le sac depose par la machine1
                        dans le sceau1
                   ''')
                  print 'sac =',sac
                  try:
                      self.manager.seau2.put(sac)
                  except Queue.Full:
                      # Le seau2 est plein  ce
                      # n'est pas grave , on repasse
                      pass

          # nous attendons encore 10 secondes
          # pour voir encore si la machine 1
          # a fait un depot
          self.manager._wait(10)

        print('''
              Humain2 a fini son travail
              ''')
class Humain1:
    # La machine une se charge de prendre  le sacs en entre
    # et la depose dans le sceau1 pour la machine 2


    def _wait(self, timee):
            time.sleep(timee)

    def __init__(self):
        self.seau1 = Queue.Queue()
        self.seau2 = Queue.Queue()
        self.seau3 = Queue.Queue()
        self.verrou= RLock()

        self.run   = True
        #thread.start_new_thread(Humain3(manager =self))

    def loop(self):
        t2 = threading.Thread(target =\
Humain2(manager =self).run, name ="t2", args=())
        t2.daemon = True
        t2.start()
        t3 = threading.Thread(target =\
Humain3(manager =self).run, name ="t3", args=())
        t3.daemon = True
        t3.start()
        print('''
                  Humain1 commence son travail
                  ''')
        while True:
            with self.verrou:
                try:
                    sac =raw_input('un sac :')
                    if sac =='o':
                        self.run =False
                        self._wait(10)
                        break
                    self.seau1.put(sac)
                except KeyboardInterrupt, e:
                    self.run =False

                    # Attends 10 senconde le temps que tous
                    # les humains finissent leu job
            self._wait(10)
        print('''
                  Humain1 a fini son travail
                  ''')
        # Le travail de tout le monde est a present
        # termine on affiche pour voir si l humain 3
        # a fin son travail et que toute la chaine
        # a bien fait le taff
        print ('''contenu du sac 3 de
              l humain3 ''')
        while True:
             try:
                print self.seau3.get(block =False)
             except Queue.Empty:
                break
if __name__ =="__main__":
     Humain1().loop()


--Ad






Le 18 décembre 2012 14:38, pape <[email protected] <mailto:[email protected]>> a écrit :

    Sublime. Ca rappelle le topic de Alioune " [DakarLUG] Fwd: [DjANGO
    Problème de Travailler avec les Intégrateur Pour un Développeur] "
    2012/12/18 Lamine Ba <[email protected] <mailto:[email protected]>>


        http://www.youtube.com/watch?v=vZiEt5RUYSk


-- Lamine Ba
        Java User Group Leader
        Co-founder & Coordinator of SeneJUG (www.senejug.com
        <http://www.senejug.com>)
        Member of JUG-Africa (java.net/projects/jug-africa
        <http://java.net/projects/jug-africa>)

        Skype: tlamine88
        Tweeter: tlamineba
        Linkedin: www.lamineba.com <http://www.lamineba.com>




-- Lamine Ba
        Java User Group Leader
        Co-founder & Coordinator of SeneJUG (www.senejug.com
        <http://www.senejug.com>)
        Member of JUG-Africa (java.net/projects/jug-africa
        <http://java.net/projects/jug-africa>)

        Skype: tlamine88
        Tweeter: tlamineba
        Linkedin: www.lamineba.com <http://www.lamineba.com>



        --
        Ce message a été envoyé à la liste [email protected]
        <mailto:[email protected]>
        Gestion de votre abonnement : http://dakarlug.org/liste
        Archives :
        http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
        Le site du DakarLUG : http://dakarlug.org




-- ***************************
          Onix Corps.

    +221-77-411-06-29
    *       BP: 2115*
      Dakar/Senegal
    ***************************


    --
    Ce message a été envoyé à la liste [email protected]
    <mailto:[email protected]>
    Gestion de votre abonnement : http://dakarlug.org/liste
    Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
    Le site du DakarLUG : http://dakarlug.org




--
Ce message a été envoyé à la liste [email protected]
Gestion de votre abonnement : http://dakarlug.org/liste
Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
Le site du DakarLUG : http://dakarlug.org

--
Ce message a été envoyé à la liste [email protected]
Gestion de votre abonnement : http://dakarlug.org/liste
Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
Le site du DakarLUG : http://dakarlug.org

Répondre à