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

宣武上海网站建设页面设计风格有哪几种

宣武上海网站建设,页面设计风格有哪几种,品牌形象设计公司,网上商城的主要功能使用多个线程的时候容易遇到一个场景#xff1a;多个线程处理一份数据 使用多线程的时候同时处理一份数据#xff0c;在threading中提供了一个方法#xff1a;线程锁 Demo#xff1a;下订单 现在有多笔订单下单#xff0c;库存减少 from threading import Thread from t… 使用多个线程的时候容易遇到一个场景多个线程处理一份数据 使用多线程的时候同时处理一份数据在threading中提供了一个方法线程锁 Demo下订单 现在有多笔订单下单库存减少 from threading import Thread from time import sleepstore {inventory : 100 } # 定义一个函数作为新线程执行的入口函数 def deposit(theadidx,orderNum):balance store[inventory]# 执行减少库存操作耗费了0.1秒sleep(0.1)store[inventory] balance - orderNumprint(f子线程 {theadidx} 结束)theadlist [] for idx in range(10):thread Thread(target deposit,args (idx,1))thread.start()# 把线程对象都存储到 threadlist中theadlist.append(thread)for thread in theadlist:thread.join()print(主线程结束) print(f最后我们的库存为 {store[inventory]}) 子线程 6 结束 子线程 1 结束 子线程 7 结束 子线程 0 结束 子线程 8 结束 子线程 9 结束 子线程 5 结束 子线程 4 结束 子线程 3 结束 子线程 2 结束 主线程结束 最后我们的库存为 99Process finished with exit code 0当十个用户下完订单后,对应的库存没有从100-1090,而是变成了99 实际减少数量和库存应减对不上 会导致每一个线程组都刷新一次余额所有的线程没有累计起来数据共享库存数 所以需要在线程执行前将原始数据锁起来执行线程内容结束后释放 使用acquire()方法上锁 使用release()方法解锁 修改后的Demo 在原来的deposit方法上添加一个上锁解锁的操作从而达到线程执行时同数据源(库存数量)不会被其他线程执行所影响 from threading import Thread, Lock from time import sleepstore {inventory: 100 } sk Lock()# 定义一个函数作为新线程执行的入口函数 def deposit(theadidx, orderNum):sk.acquire() # 上锁 解库存balance store[inventory]# 执行减少库存操作耗费了0.1秒sleep(0.1)store[inventory] balance - orderNumprint(f子线程 {theadidx} 结束)sk.release() # 解锁 theadlist [] for idx in range(10):thread Thread(targetdeposit,args(idx, 1))thread.start()# 把线程对象都存储到 threadlist中theadlist.append(thread)for thread in theadlist:thread.join()print(主线程结束) print(f最后我们的库存为 {store[inventory]})子线程 0 结束 子线程 1 结束 子线程 2 结束 子线程 3 结束 子线程 4 结束 子线程 5 结束 子线程 6 结束 子线程 7 结束 子线程 8 结束 子线程 9 结束 主线程结束 最后我们的库存为 90Process finished with exit code 0写在最后 线程上锁的好处:         确保了某个方法/类方法(这里为deposit方法)只能由一个线程从头到尾完整地执行 坏处:         上锁的时候需要在操作后及时的解锁,可能会导致死锁发生 注意:         使用acquire()方法上锁后一定要使用release()方法去解锁
http://www.w-s-a.com/news/792640/

相关文章:

  • 建设二手商品网站总结石景山安保服务公司电话
  • 网站建设对于企业的重要性龙岗企业网站设计公司
  • 网站搭建在线支付数码产品网站模板
  • 白云网站建设多少钱WORDPRESS添加前台会员注册
  • 商业网站模板中国字体设计网站
  • 做网站闵行网站建设中英语
  • 写作网站大全如何简单制作生理盐水
  • 云南网站建设维护互联网广告是做什么的
  • 网站 谁建设 谁负责做网站项目
  • 网站建设子栏目怎么弄海口专门做网站
  • 网站建设 温州建设网上银行个人网上银行登
  • 黄页网站推广方案wordpress 压缩插件
  • 网站建设常州网站简介 title
  • 惠州市网站建设个人深圳网站优化价格
  • 营销型网站工程专业网站开发公司
  • 两个路由器做双网站西安关键词优化服务
  • 企业建站系统信息远象建设 网站
  • 移动建站平台物业管理系统app
  • 济南网站建设多少钱郑州公司做网站
  • 在阿里云网站建设wordpress模板如何修改字体
  • 网站推广方案设计购物网站模块例子
  • 潍坊网站定制公司网站图片放大特效怎么做的
  • 淘宝店铺买卖湘潭seo优化价格
  • 最好的网站建设用途合肥企业网站建设
  • 计算机编程与网站建设好玩的网页传奇
  • 商务网站建设找哪家本地推广找哪些网站
  • 手机h5网站企业网站管理系统的运维服务
  • 南京建设网站公司网站游戏怎么制作
  • 成都建站程序苏州市建设局招标网站首页
  • 自助建网站市场公司起名大全2020最新版的