Встречается на собеседованиях • сегодня
Какой опыт с многопоточностью
В Python есть модуль threading для работы с потоками. Однако из-за GIL (Global Interpreter Lock) потоки выполняются не совсем параллельно — GIL переключается между ними. Это полезно для I/O-bound задач (сетевые запросы, чтение файлов), но не для CPU-bound задач (тяжелые вычисления).
Для CPU-bound задач лучше использовать multiprocessing, так как он создает отдельные процессы с собственным GIL.
Пример с потоками:
python
import threading
def worker(num):
print(f"Поток {num} начал работу")
# Имитация I/O операции
time.sleep(1)
print(f"Поток {num} завершил работу")
threads = []
for i in range(3):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()Ключевые моменты:
Threadсоздает потокstart()запускает потокjoin()ожидает завершения- Общие данные требуют синхронизации (
Lock,RLock) - Для асинхронных задач можно использовать
asyncio
Важно помнить про race conditions и deadlocks при работе с разделяемыми ресурсами.

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