Встречается на собеседованиях • сегодня
Как синхронизировать потоки в Python
Для синхронизации потоков в Python используйте модуль threading с примитивами синхронизации:
- Lock – базовый мьютекс:
python
import threading
lock = threading.Lock()
def safe_increment():
with lock:
# Критическая секция
global counter
counter += 1- RLock – реентерабельный лок (позволяет повторно захватывать тот же поток):
python
rlock = threading.RLock()- Semaphore – ограничивает количество потоков в критической секции:
python
sem = threading.Semaphore(3) # Макс 3 потока- Event – механизм оповещения между потоками:
python
event = threading.Event()
event.wait() # Блокировка до event.set()- Condition – более сложная синхронизация с wait/notify:
python
cond = threading.Condition()
with cond:
cond.wait() # Ожидание notify()Важно: GIL (Global Interpreter Lock) в CPython не заменяет необходимость синхронизации при работе с общими данными! Для CPU-bound задач лучше использовать multiprocessing.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы