Back to questions
Wildberries
Junior — Middle
66
Какие основные механизмы для синхронизации потоков или процессов тебе знакомы?
Companies where asked
Инновационный центр Безопасный транспорт
Answer from AI
sobes.tech AI
Основные механизмы синхронизации потоков или процессов в Python включают:
- Lock (блокировка) — предотвращает одновременный доступ к общим ресурсам.
- RLock (рекурсивный Lock) — позволяет одному потоку несколько раз захватывать блокировку.
- Semaphore (семафор) — ограничивает число потоков, которые могут одновременно выполнять определённый участок кода.
- Event (событие) — позволяет одному потоку сигнализировать другим о наступлении события.
- Condition (условие) — позволяет потокам ждать определённого условия и уведомлять друг друга.
Пример использования Lock:
import threading
lock = threading.Lock()
shared_resource = 0
def increment():
global shared_resource
with lock:
temp = shared_resource
temp += 1
shared_resource = temp
threads = [threading.Thread(target=increment) for _ in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print(shared_resource) # Ожидается 10
Для процессов можно использовать аналогичные механизмы из модуля multiprocessing, например, multiprocessing.Lock.