Junior — Middle
100
Koje su ti osnovne mehanizme za sinhronizaciju niti ili procesa?
Компаније где су питане
Инновационный центр Безопасный транспорт
Одговор од АИ
sobes.tech АИ
Основные механизмы синхронизации потоков или процессов в 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.