Встречается на собеседованиях • сегодня
Как общаться между несколькими потоками
В Python для межпоточного взаимодействия используют несколько механизмов:
- Очереди (Queue) - потокобезопасный способ обмена данными:
python
from queue import Queue
from threading import Thread
def worker(q):
while True:
item = q.get()
print(f"Обработано: {item}")
q.task_done()
q = Queue()
Thread(target=worker, args=(q,), daemon=True).start()
q.put("данные")
q.join()
text
2. **События (Event)** - для простой синхронизации:
```python
from threading import Event, Thread
event = Event()
def waiter():
print("Ожидание события")
event.wait()
print("Событие получено")
Thread(target=waiter).start()
event.set() # Разблокировать ожидающие потоки- Условные переменные (Condition) - для более сложной синхронизации
- Семафоры (Semaphore) - для ограничения доступа к ресурсам
Важно помнить о GIL - операции с общими данными должны быть потокобезопасными. Для CPU-задач лучше использовать multiprocessing.

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