博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python--day37--进程锁
阅读量:7219 次
发布时间:2019-06-29

本文共 959 字,大约阅读时间需要 3 分钟。

进程锁的示意图:

  锁.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'] -= 121         print('\033[32m%s买到票了\033[0m'%i)22     else:23         print('\033[31m%s没买到票\033[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()

运行结果:

转载于:https://www.cnblogs.com/xudj/p/10320831.html

你可能感兴趣的文章
阿牛的EOF牛肉串
查看>>
随笔2013/2/13
查看>>
笨办法32循环和列表
查看>>
java序列化
查看>>
谈谈NITE 2的第一个程序HandViewer
查看>>
VS2008 未响应 假死
查看>>
html5、css3及响应式设计入门
查看>>
Win10還原成最乾淨的狀態
查看>>
Java_InvokeAll_又返回值_多个线程同时执行,取消超时线程
查看>>
SaltStack作业
查看>>
单例设计
查看>>
springboot+缓存
查看>>
/*10个filter的属性*/ ---毛玻璃效果
查看>>
折半查找习题解答
查看>>
51单片机的P1
查看>>
[32]JSON
查看>>
3689: 异或之
查看>>
字符串模式匹配KMP算法
查看>>
Android Drawable和Bitmap图片之间转换
查看>>
Debian 8 安装 Nvidia 显卡驱动
查看>>