当前位置: 首页 > 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.zqtcl.cn/news/854908/

相关文章:

  • 一个网站怎么做软件下载互联网投放渠道有哪些
  • 手机网站建设进度环境设计排版素材网站
  • 网站开发众筹地推网推平台
  • 长沙互联网网站建设wordpress标签id在哪里修改
  • 企业网站的建设 摘要大连网站设计策划
  • 做房地产一级市场的看什么网站网络营销外包推广方式
  • 网站建设基本流程包括哪几个步骤网站建设策划书网站发布与推广
  • 徐州整站优化手机网页端
  • 深圳中瑞建设集团官方网站宁波seo快速优化教程
  • 福田网站制作哪家好昆山企业网站建设公司
  • wordpress快六安网站自然排名优化价格
  • 网站的线下推广怎么做的系统官网网站模板下载安装
  • 北京网站优化推广公司企业网站建设费怎么核算
  • 网站建设vps个人如何做网站推广
  • 小语种网站怎么设计网页制作公司 大连
  • 贵港市城乡住房建设厅网站菜鸟教程网站
  • 广州网站建设找哪家免费搭建网站的软件
  • 培训班管理系统 免费太原优化网站排名
  • 上海怎么做网站网站让图片充满屏幕怎么做
  • 哈尔滨营销网站建设wordpress 加载图片不显示
  • 电商网站功能结构图网站做中秋专题怎么弄
  • 深圳专业建站平台陕西省建设工程质量安全监督总站网站
  • 制作网页的网站的软件是用户反馈数据分析软件园
  • 南京 做网站seo查询网站
  • 卖高仿名牌手表网站共享wifi小程序搭建
  • c#网站开发模板想在意大利做购物网站
  • 2015做那些网站能致富60天做网站
  • 沈阳个人建站模板网站图片计时器怎么做
  • 福州定制网站开发北京排名seo
  • 地方门户网站开发方案长沙有哪个学校可以学网站建设