Встречается на собеседованиях • сегодня

Как организовывал многозадачность в своих проектах

Для многозадачности в Python чаще всего использую:

  1. Потоки (threading) - для I/O-bound задач:
python
from threading import Thread

def task():
    print("Выполняю задачу в потоке")

threads = [Thread(target=task) for _ in range(5)]
for t in threads: t.start()
for t in threads: t.join()
  1. Процессы (multiprocessing) - для CPU-bound задач:
python
from multiprocessing import Process

def worker():
print("Процесс выполняет работу")

procs = [Process(target=worker) for _ in range(4)]
for p in procs: p.start()
for p in procs: p.join()

text

3. **Асинхронность (asyncio)** - для высоконагруженных сетевых приложений:
```python
import asyncio

async def fetch_data():
    await asyncio.sleep(1)
    return "Данные"

async def main():
    tasks = [fetch_data() for _ in range(3)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

Выбор зависит от задачи:

  • Потоки для множества I/O операций (запросы, файлы)
  • Процессы для тяжелых вычислений
  • Asyncio для сетевых сервисов с высокой нагрузкой

Важно учитывать GIL и правильно синхронизировать доступ к общим ресурсам.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы