el módulo de subprocesamiento en Python proporciona dos tipos de bloqueos: un bloqueo común y un bloqueo de reentrada. Me parece que si necesito un candado, siempre debería preferir el RLock sobre el candado; principalmente para evitar situaciones de estancamiento.¿RLock es un valor predeterminado por bloqueo?
Además de eso, veo dos puntos, cuando a preferir un bloqueo sobre un RLock:
- RLock tiene una estructura interna más complicado y por lo tanto pueden tener un peor rendimiento.
- Por alguna razón, quiero evitar que un hilo se repita a través del bloqueo.
¿Mi razonamiento es correcto? ¿Puedes señalar otros aspectos?
# 2 es poco probable que sea una buena razón; el único caso en el que no es un punto muerto garantizado es si la recursión adquiere no bloqueo y tiene un curso de acción razonable cuando no puede verificar que contiene el bloqueo. Y el # 1 no se aplica en Python 3.2+. Una razón legítima para preferir 'Bloquear' es cuando el bloqueo debe liberarse en un hilo diferente al que lo adquirió. – ShadowRanger