Sobes.tech
Junior — Middle
89

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

Сұралған компаниялар
WildberriesWildberries
Инновационный центр Безопасный транспорт

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.