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
The above은 thread safe 연습이 아니며 일반적으로 잠금을 사용합니다.Django 클래스 기반 뷰 :이 예제에서는 자물쇠가 제대로 작동합니까?
그러나 django states 그 :
클래스 기반 뷰에서 게재 각 요청 독립된 상태를 갖고; 따라서 self.foo = 3은 스레드 안전 연산이므로 상태 변수를 인스턴스에 저장하는 것이 안전합니다. 상태 변수 를 저장하는atomic operation 때문에
나는 완전히 위의 견적을 이해하지 않습니다.
내 경우에는 동시에 읽고 교체합니다. 동일한 인용문은 각보기가 "독립적 인 상태"라는 것을 읽습니다.
잠금을 중복 사용하는 것이 안전할까요?