flask的线程隔离

线程隔离的原理就是通过字典保存数据,每一个线程都将自己的线程号作为key,request请求对象的返回值作为value

werkzeug库里面的local模块封装了一个Local对象,基于字典实现的线程隔离对象

 

import threading
import time

from werkzeug.local import Local


obj = Local()
obj.b = 1


def worker_1():
    obj.b = 2
    print('Current thread b is:' + str(obj.b))


new_task = threading.Thread(target=worker_1)
new_task.start()
time.sleep(1)
print('Main thread b is:' + str(obj.b))

输出结果:

Current thread b is:2
Main thread b is:1

不用在意它是如何封装成一个线程隔离对象的细节,直接就可以使用

 

上一篇:1、项目准备


下一篇:5、使用WTF创建表单