Зачем нужен объект синхронизации в Python
Python
Middle
Баланс-Платформа
Зачем нужен объект синхронизации в Python
Ответы
В Python объекты синхронизации (например, `Lock`, `Event`, `Semaphore`) используются для управления доступом к общим ресурсам в многопоточных или многопроцессных приложениях. Они предотвращают race conditions, когда несколько потоков/процессов одновременно изменяют данные, что может привести к неожиданным результатам.
Пример с `Lock`:
```
from threading import Thread, Lock
counter = 0
lock = Lock()
def increment():
global counter
for _ in range(100000):
lock.acquire()
counter += 1
lock.release()
threads = [Thread(target=increment) for _ in range(5)]
for t in threads: t.start()
for t in threads: t.join()
print(counter) # Всегда 500000
```
Без `Lock` результат мог бы быть меньше из-за race condition. Объекты синхронизации обеспечивают безопасный доступ к общим ресурсам, координацию между потоками/процессами и помогают избежать deadlocks при правильном использовании.