модуль потоковой передачи в Python предоставляет два вида блокировок: общий замок и блокировку реентера. Мне кажется, что, если мне нужен замок, я всегда должен предпочесть RLock над Lock; в основном для предотвращения ситуаций взаимоблокировки.
Кроме того, я вижу две точки, когда предпочитаю блокировку над RLock:
- RLock имеет более сложную внутреннюю структуру и, следовательно, может иметь худшую производительность.
- По какой-то причине я хочу предотвратить рекурсию потока через блокировку.
Я правильно ли рассуждаю? Можете ли вы указать на другие аспекты?