线程隔离对象:Local,LocalStack这些,通过他们创建被线程隔离的对象
被线程隔离的对象:RequestContext,AppContext
不是。 current_app是_app_ctx_stack的栈顶元素的app对象。他是全局唯一的,所以他不是线程隔离的对象,把他做成线程隔离的也没有意义,因为在字典中不同的线程id号指向的仍然是同一个对象。
以线程ID号作为key的字典->Local->LocalStackAppContext,RequestContext -> LocalStackFlask->AppContext,Request->RequestContextcurrent_app(LocalStack.top=AppContext,top.app=Flask)request(LocalStack.top=RequestContext,top.request=Request)
以线程ID号作为key的字典->Local->LocalStack
AppContext,RequestContext -> LocalStack
Flask->AppContext,Request->RequestContext
current_app(LocalStack.top=AppContext,top.app=Flask)
request(LocalStack.top=RequestContext,top.request=Request)
Last updated 7 years ago
Was this helpful?