Sızdırılan eşzamanlılık tutamacı (ARCH2085)
Anahtar python.performance.leaked-concurrency-handle · Önem warning · Kategori performance
Bir kilit acquire edilip serbest bırakılmadan kullanıldığında, hata oluşursa kilit asla bırakılmaz ve kilitlenmeye yol açar. with ile sınırlı yaşam süresi sağlayın.
Hatalı
Bölüm başlığı “Hatalı”import threading
lock = threading.Lock()
def increment(counter): lock.acquire() counter.value += 1 lock.release()import threading
lock = threading.Lock()
def increment(counter): with lock: counter.value += 1Düzeltme
Bölüm başlığı “Düzeltme”Kilitleri with lock: ile alın; iş parçacıklarını join edin ya da bağlam yöneticisiyle sarın.