Reptile 19- producteurs et les consommateurs et le fil de file d'attente

filetage d'importation
importation aléatoire
temps d'importation

Gmoney = 1000
Glock = threading.Lock ()
gTotalTimes = 10
gTimes = 0


classe Producteur (threading.Thread):
    def exécuter (self):
        mondiale Gmoney
        gTimes mondiaux
        while True:
            argent = random.randint (100,1000)
            gLock.acquire ()
            si gTimes> = gTotalTimes:
                gLock.release ()
                Pause
            Gmoney + = argent
            print ( '% s% d dollars de la production, les dollars restants% d' % (threading.current_thread (), argent, Gmoney))
            gTimes + = 1
            gLock.release ()
            time.sleep (0,5)


classe des consommateurs (threading.Thread):
    def exécuter (self):
        mondiale Gmoney
        while True:
            argent = random.randint (100,1000)
            gLock.acquire ()
            si Gmoney> = argent:
                Gmoney - = argent
                print ( '% s% d dollars des dépenses de consommation, les dollars restants% d' % (threading.current_thread (), argent, Gmoney))
            autre:
                si gTimes> = gTotalTimes:
                    gLock.release ()
                    Pause
                print ( '% s% d dollars des consommateurs prêts à consommer les dollars restants% d, moins!% (threading.current_thread (), argent, Gmoney))
            gLock.release ()
            time.sleep (0,5)


def main ():
    pour x dans la fourchette (3):
        t = consommation (nom 'thread consommateur% d' = x%)
        t.start ()

    pour x dans la fourchette (5):
        t = Producteur (name = "thread producteur% d" % x)
        t.start ()

si __name__ == '__main__':
    principale()

  

 

File d'attente de la file d'importation
filetage d'importation
temps d'importation
essai def ():

    q = File d'attente (4)
    pour i dans la plage (4):
        q.put (i)

    pour i dans la plage (4):
        impression (q.get ())
    impression (q.full ())
    impression (q.empty ())
    impression (q.qsize ())

def set_value (q):
    indice = 0
    while True:
        q.put (index)
        index + = 1
        time.sleep (1)

def get_value (q):
    while True:
        impression (q.get ())

def main ():
    q = File d'attente (4)
    t1 = threading.Thread (target = set_value, args = [q])
    t2 = threading.Thread (target = get_value, args = [q])

    t1.start ()
    t2.start ()

si __name__ == '__main__':
    principale()

  

Je suppose que tu aimes

Origine www.cnblogs.com/wcyMiracle/p/12500007.html
conseillé
Classement