关于应用上下文栈, 请求上下文栈创建与销毁的次数问题

来源:5-3 详解flask上下文与出入栈

Geoffrey_He

2020-03-27

七月老师您好,首先非常感谢和佩服您能够把原理讲的很清楚,谢谢您!我有几个问题想要请教一下您。问题一:在源代码中应用上下文栈对象和请求上下文栈对象都是LocalStack类的对象,按照第六章的概念就是说它们都是线程隔离的对象,是不是意味着一个请求就对应一个栈?或者说是不是一个请求对应了一个线程?这是我有一点困惑的地方;第二个问题就是如果问题一如我所想的话,当一个请求到Flask框架,框架初始化了两个线程隔离的栈,current_app和request指向这两个栈的栈顶,一次访问结束后,这两个对象都弹出栈结构,此时栈空,那么是不是一次请求结束后,整个栈结构就会被类似于GC机制一样被回收掉了?然后下一次请求到来重复这样的工作?但是我一想又觉得这样似乎不太合理因为好像就类似于一个数组每一次只开一个空间,这样反复好像没有什么意义,所以我觉得或许不是我想的这样,能向您咨询一下吗?谢谢您!大学和您学了很多,您的课程我都认真的学习了,或许理解能力有限,特此向您提问请教!谢谢老师!

写回答

1回答

7七月

2020-03-27

一次请求确实会对应一个栈。这个课程里谈到了,原因是因为在做离线脚本的时候会有用。

至于说回收机制,我觉得这个我没太探究了。

0
1
Geoffrey_He
谢谢七月老师~祝您生活愉快,继续向您学习!
2020-03-27
共1条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2735 学习 · 1267 问题

查看课程