flask本地线程与Local

1.我在写一个博客网站的时候,当一个用户注册了账号信息的时候会发送一封邮件到邮箱让用户来确认, 我发现其中有一个问题就是当请求来时一次只能发送一封邮件,所以在发送多封邮件时会耗费很多的时间,这时候就需要多线程技术,当然了在处理HTTP请求的服务器也是这样的,当我们自己写的程序在面临大量的用户同时发起的请求时,我们不可能一个个的处理。我们需要使用多线程技术,在flask中Werkzeug提供的开发服务器会默认的开启多线程支持。

2.在使用多线程时我们会面临一个问题,假如A和B用户同时向hello视图访问,这时服务器分配的两个线程来处理请求,如何保证两个请求是各自对应互不干扰的?

3.办法:再保存数据的同时保存下对应线程的ID号,获取数据时可以根据线程ID号获取到对应的数据

具体可参考源码中的werkzeug/local.py

注释:在python中前后双下滑线的方法常常被称作魔法方法。它们是内置的特殊方法可以通过这些方法来改变类的行为

比如:init()方法(构造函数)会在类被实例化时调用
repr()方法会在类实例被打印时调用
Local类中定义的__getattr__(),setattr(),delattr()方法分别在类属性被访问,设置,删除时调用;call()会在类实例被调用时调用,iter()会在类实例被迭代时调用;完整的列表可以在Python文档(https://docs.python.org/3/reference/datamodel.html)看到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值