Как работает нарезание резьбы.Замок действительно работает? (с несколькими сценариями)

#python-3.x #multithreading #locking #python-multithreading

Вопрос:

Я посмотрел в Интернете и провел некоторый поиск в stackoverflow и Интернете о блокировках, и, похоже, я просто получил общее представление о том, что, когда блокировка активна, другой поток не может ее использовать??

У меня есть несколько общих объектов, которые постоянно читаются/записываются на протяжении всего сценария, и я все еще не уверен на 100%, как на самом деле работает функция блокировки? Когда вам нужно его использовать, когда вам не нужно его использовать и стоит ли создавать отдельные блокировки для каждой общей переменной/объекта?

Когда поток вызывает блокировку, означает ли это, что другие потоки будут останавливаться только в той конкретной части сценария, где первоначально была вызвана блокировка, или он каким-то образом подтверждает прекращение чтения/записи любых переменных в вызове функции получения/освобождения на протяжении всего сценария?

Если у меня есть несколько блокировок специально для каждой общей переменной/объекта и вызывается одна функция блокировки, влияет ли это и на остальные блокировки?

Я думаю, что, подводя итог, я изо всех сил пытаюсь понять «углубленную» версию блокировки, только будучи в состоянии найти общий обзор среди предыдущих объяснений в Интернете.