# 进程锁的代价是,失去异步效果
# db.txt文件内容:{"count": 1}from multiprocessing import Process
from multiprocessing import Lock
import time
import jsondef search():time.sleep(1)f = open('json.txt','r',encoding='utf-8')ticket =json.load(f)print(f"剩余票数:{ticket['count']}")f.close()return ticket
def buy():ticket = search()if ticket['count'] > 0:ticket['count'] -=1print('购买完成')f = open('json.txt', 'w')f.write(json.dumps(ticket))def task(lock):lock.acquire() # 上锁buy()lock.release() #解锁if __name__ == '__main__':lock = Lock()for i in range(3):p = Process(target=task,args=(lock,)) # 创建三个进程,每个进程都加锁,表示该进程完成后才能执行下个进程p.start()返回结果:
剩余票数:1
购买完成
剩余票数:0
剩余票数:0
详细解决方案
python进程锁
热度:49 发布时间:2023-10-08 16:17:42.0
相关解决方案
- ubuntu9.04上安装mic2 出错 (python setup.py build)
- ubuntu9.04下安装mic2 出错 (python setup.py build),该如何解决
- 请教如何理解JAVA、C++ Perl、PHP、Ruby、Python
- python sybase装配
- python(django框架) + mysql 的编码有关问题,求解
- SAE python web.py bootstrap 开发记要
- 数目字代码把大数据数字口语化(python+js) 数字代码
- python JSON string 的中文有关问题
- python――施用yaml数据格式,PK -> XML,JSON
- Learn Python The Hard Way学习(52) - 开始您的web游戏
- Python 相关有关问题
- 菜鸟,先学JAVA,还是Ruby,python
- 生手之前对编程无概念现在想转这行,想尽快入门,java ,python,net、php、C之间如
- 【大哥大姐】python 操作MS SQL Server 2005 效率
- python serial模块运用
- python scp自动登录解决方法
- 【Python】按行读取文件、IOError: [Errno 22] invalid mode ('a+') or filename,处置文件的换行符
- Python 3.x中使用print函数出现语法异常(SyntaxError: invalid syntax)的原因
- 【Error】Python安装gevent时出错:“致命异常: Python.h:没有那个文件或目录”
- [Python]attributeError:'module' object has no attribute 'dump'
- Python 出错:IndentationError: unexpected indent
- Python“TypeError: 'NoneType' object is not iterable"的缘故
- python in操作挑动 TypeError
- 【Error】Python:SyntaxError: Non-ASCII character '\xe5'解决办法
- python 有什么 步骤可以知道函数或类在哪个文件定义的
- 树莓派学习笔记——Python SQLite安插温度记录
- Python 将数组转换为 Wav
- Python:文件格式不正确
- Python-从tkinter脚本连接到远程主机
- 如何在 Bash 的 python 解释器中运行 python 脚本