第六章 Flask-其他知识点(三)

local线程隔离对象

Local对象:
在Flask中,类似于request的对象,当绑定到了一个werkzeug.local.local对象时,即使是同一个对象,那么在多个线程中都是隔离的。

Thread Local对象:

只要满足:绑定到这在一个线程对象上的属性,在每个线程中都是隔离的,那么他就叫做Thread-local对象属性

from threading import Thread
from werkzeug.local import Local

local = Local()

local.request = '123'
gobal_request='aaa'
class MyThread(Thread):
    def run(self):
        #注意1
        # print('子线程:', local.request) 报错

        local.request = 'abc'
        print('子线程:',local.request)

        global gobal_request
        gobal_request='bbb'


mythread = MyThread()
mythread.start()
mythread.join()

print('主线程:',local.request)
print('主线程:',gobal_request)

猜你喜欢

转载自www.cnblogs.com/wqbin/p/12465338.html