Secção XIX produtores e consumidores edição de bloqueio

1  importação enfiar
 2  importação tempo
 3  importação aleatório
 4  
5  
6 gMoney = 1000
 7 Glock = threading.Lock ()
 8  
9  classe Produtor (threading.Thread):
 10      def correr (auto):
 11          mundial gMoney
 12          enquanto um :
 13              dinheiro = random.randint (100,1000 )
 14              gLock.acquire ()
 15              gMoney + = dinheiro
 16              print ( '% s生产了% d,账户总余额% d ' % (threading.current_thread (), dinheiro, gMoney))
 17              gLock.release ()
 18              time.sleep (0,5 )
 19  
20  
21  classe Consumidor (threading.Thread):
 22      def execute (self):
 23          mundial gMoney
 24          , enquanto 1 :
 25              dinheiro = random.randint (100,1000 )
 26              se gMoney> = dinheiro:
 27                  gLock.acquire ()
 28                  gMoney - = dinheiro
 29                  impressão (' % S消费了% d,% d账户余额' % (threading.current_thread (), dinheiro, gMoney))
 30                  gLock.release ()
 31              time.sleep (0,5 )
 32  
33  def principal ():
 34      para x em faixa (5 ):
 35          t = Produtor ()
 36          t.start ()
 37      para x no intervalo (5 ):
 38          t = Consumidor ()
 39          t.start ()
 40  
41  se  __name__ == '__main__ ' :
 42      principal ()

 

Acho que você gosta

Origin www.cnblogs.com/kogmaw/p/12507030.html
Recomendado
Clasificación