当前位置: 首页 > backend >正文

进程(转账,卖票)

银行转账问题
 


from multiprocessing import Process, Value, Lock
import time# 取钱
def getMoney(money, lock):lock.acquire()  # 上锁for i in range(30):money.value -= 1# print(money.value)time.sleep(0.01)lock.release()  # 开锁# 存钱
def putMoney(money, lock):lock.acquire()  # 上锁for i in range(30):money.value += 1time.sleep(0.01)lock.release()  # 开锁if __name__ == '__main__':# 设置money为共享money = Value("i", 100)# 创建锁对象lock = Lock()p1 = Process(target=getMoney, args=(money, lock))p2 = Process(target=putMoney, args=(money, lock))p1.start()p2.start()p1.join()p2.join()print(money.value)

火车票售卖

from multiprocessing import Process,Value,Lock
import timeclass MyProcess(Process):def __init__(self,name,lock):super(MyProcess, self).__init__()self.name = nameself.lock = lockdef run(self):# p2  p3while 1:# p1  p2  p3self.lock.acquire()  # 上锁with open("火车票") as file:tickNum = int(file.read())if tickNum > 0:time.sleep(0.5)  #  p1print("%s 窗口卖了第 %s 张票"%(self.name,tickNum))# 票数减少tickNum -= 1# 更新文件中的票总数with open("火车票","w") as file:file.write(str(tickNum))self.lock.release()  # 开锁if __name__ == '__main__':lock = Lock()p1 = MyProcess("1号",lock)p2 = MyProcess("2号",lock)p3 = MyProcess("3号",lock)p1.start()p2.start()p3.start()


 

http://www.xdnf.cn/news/258.html

相关文章:

  • C#核心笔记——(六)框架基础
  • 【MySQL】数据库和表的操作详解
  • 6.6 “3步调用ChatGPT打造高可靠Python调度器,零依赖实现定时任务自动化“
  • Linux工具学习之【vim】
  • 医学图像中的不同模态图像详细介绍
  • VirtualBox导入 .ova 文件出错,怎么解决
  • Java入门-Map双列集合
  • 通过C# 将Excel表格转换为图片(JPG/ PNG)
  • 51单片机实验七:EEPROM AT24C02 与单片机的通信实例
  • 《计算机视觉度量:从特征描述到深度学习》—工业检测大模型RAG白皮书
  • 12芯束装光纤不同包层线颜色之间的排列顺序
  • Linux 内核开发/测试工具对比 Windows 驱动验证工具 (Driver Verifier)
  • 从数据集到开源模型,覆盖无机材料设计/晶体结构预测/材料属性记录等
  • 70. 爬楼梯
  • 环境搭建与入门:Flutter SDK安装与配置
  • 《数据结构初阶》【时间复杂度 + 空间复杂度】
  • Echart 地图放大缩小
  • SQL SERVER里面也可以插入存储过程,操作TCP,WEBSOCKET吗?数据发生改变时用于通知客户端
  • C++手撕STL-其一
  • 1、企业级在线办公套件推荐:OnlyOffice 全面介绍
  • 容性串扰-信号与电源完整性分析
  • [滑动窗口]209. 长度最小的子数组
  • 大模型落地实践:哪些行业正在被AI颠覆?
  • STM32单片机C语言
  • AI数字人如何深度赋能政务场景?魔珐科技政务应用全景解读
  • Linux CentOS 更改MySQL数据库目录位置
  • Ambari 中移除/重装 yarn 集群中的 NodeManager 节点
  • AI绘制流程图,方法概述
  • 仿腾讯会议项目实现——设置配置文件
  • HOOPS Exchange 与HOOPS Communicator集成:打造工业3D可视化新标杆!