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

Что лучше подходит для работы с файлами - многопоточность или асинхронность

Для работы с файлами в Python лучше использовать асинхронность, а не многопоточность. Вот почему:

  1. GIL ограничивает потоки - в Python потоки не выполняются по-настоящему параллельно из-за Global Interpreter Lock
  2. Ожидание ввода-вывода - асинхронность идеально подходит для операций, где много времени тратится на ожидание (дисковый ввод-вывод)
  3. Меньше накладных расходов - корутины легковеснее потоков

Пример с asyncio:

python
import asyncio
from aiofile import async_open

async def read_file():
    async with async_open("data.txt", "r") as afp:
        content = await afp.read()
    return content

asyncio.run(read_file())

Однако для CPU-интенсивных задач с файлами (например, обработка изображений) лучше использовать процессы (multiprocessing).

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

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

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

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