Python 基于Django类的视图:在本例中锁是冗余的吗?

Python 基于Django类的视图:在本例中锁是冗余的吗?,python,django,django-views,python-multithreading,django-class-based-views,Python,Django,Django Views,Python Multithreading,Django Class Based Views,这不是惯例,我通常会用锁 然而,我们认为: 由基于类的视图服务的每个请求都有一个独立的状态; 因此,在实例上存储状态变量是安全的,即。, self.foo=3是线程安全操作 我不完全理解上面的引文,因为存储状态变量是一个复杂的过程 就我而言,我同时阅读和替换。同样的引文指出,每个视图都有一个独立的状态 是否考虑使用冗余的锁是安全的? < P>此实例不可能在线程间共享,因此这里不需要锁。 正如您链接到的文档所示,每个请求都是线程安全的操作。作为其中的一部分,为每个请求实例化ListView,并在该

这不是惯例,我通常会用锁

然而,我们认为:

由基于类的视图服务的每个请求都有一个独立的状态; 因此,在实例上存储状态变量是安全的,即。, self.foo=3是线程安全操作

我不完全理解上面的引文,因为存储状态变量是一个复杂的过程

就我而言,我同时阅读和替换。同样的引文指出,每个视图都有一个独立的状态


是否考虑使用冗余的锁是安全的?

< P>此实例不可能在线程间共享,因此这里不需要锁。

正如您链接到的文档所示,每个请求都是线程安全的操作。作为其中的一部分,为每个请求实例化ListView,并在该请求中调用其get_context_数据。这意味着MyClass的实例化也只能在单个线程中进行

class MyView(ListView):
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        a_class = MyClass()
        context['...'] = a_class.is_a_lock_reduntant_here()
        return context


class MyClass(object):
    def __init__(self):
        self.counter = 0

    def is_a_lock_reduntant_here(self):
        return self.counter += 1