对于与Apache(mod_wsgi或任何多线程Web应用程序一起使用)使用的Flask中的全局变量,我有一个一般性的问题
我有一个Flask应用程序,该应用程序具有全局变量Z。
我有1种方法可以根据Z值进行一些数学运算。
我看到的是,我发送了两个具有不同值(Z)的GET请求(同时,相差1ms以内)。
我希望两个请求的输出结果是2个不同的结果,因为我发送的值是不同的。我得到的是完全相同的输出。
如果我错了,请纠正我,但我认为我正在处理两个线程同时访问同一共享数据并进行更改的竞争状态,因此这两种方法都使用相同的Z值。
我的问题是:处理此类事情的最佳实践是什么? 我可以想象有多个变量需要传递几个链函数,并且声明一个全局变量要比将其四处移动并具有每个带有5个参数的函数要容易。 问题在于这些全局变量会发生变化,因此显然无法正常工作。
但是让我困扰的是如果我拥有这个链条:
函数A->函数B->函数C->函数D返回某些内容
函数A需要Z值,函数C也需要,但是B不需要。.
但是,C必须先于B。然后呢?我是否应该将其传递给B而不使用它,而仅将其传递给C?