Sobes.tech
Junior — Middle
84

Какие основные механизмы для синхронизации потоков или процессов тебе знакомы?

Компании, где спрашивали
WildberriesWildberries
Инновационный центр Безопасный транспорт

Ответ от нейросети

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.