zoukankan      html  css  js  c++  java
  • Python--day37--进程锁

    进程锁的示意图:

      锁.py:

     1 #
     2 #火车票
     3 import json
     4 import time
     5 
     6 from multiprocessing import Process
     7 from multiprocessing import Lock
     8 
     9 def show(i):
    10     with open('ticket') as f:
    11         dic = json.load(f)
    12     print('余票:%s'%dic['ticket'])
    13 
    14 def buy_ticket(i,lock):
    15     lock.acquire()  #拿钥匙进门
    16     with open('ticket') as f:
    17         dic = json.load(f)
    18         time.sleep(0.1)
    19     if dic['ticket'] > 0:
    20         dic['ticket'] -= 1
    21         print('33[32m%s买到票了33[0m'%i)
    22     else:
    23         print('33[31m%s没买到票33[0m'%i)
    24     time.sleep(0.1)
    25     with open('ticket','w') as f:
    26         json.dump(dic,f)
    27     lock.release()  #还钥匙
    28 
    29 if __name__ == '__main__':
    30     for i in range(10):
    31         p = Process(target=show, args=(i,))
    32         p.start()
    33     lock = Lock()
    34     for i in range(10):
    35         p = Process(target=buy_ticket, args=(i,lock))
    36         p.start()

    运行结果:

  • 相关阅读:
    前端常用代码
    前端常用代码
    Velocity模版自定义标签
    算法思想
    java特性之三--多态性
    非线性数据结构--图
    接口
    java特性之四--抽象
    (数据结构与算法) 堆
    数据结构_平衡二叉树(AVL树)
  • 原文地址:https://www.cnblogs.com/xudj/p/10320831.html
Copyright © 2011-2022 走看看