Встречается на собеседованиях • сегодня
Что будет быстрее работать многопоточность (multithreading) или асинхронизация, если нужно у каждого файла уменьшить размер и положить в другую папку
В Python из-за GIL (Global Interpreter Lock) многопоточность не даст выигрыша для CPU-bound задач (как уменьшение изображений). Лучше использовать multiprocessing или asyncio + threads для I/O-bound операций.
Для этой задачи оптимально:
- Asyncio + ThreadPoolExecutor – если работа с файлами (I/O-bound)
- Multiprocessing – если само уменьшение изображений CPU-bound
Пример с ThreadPoolExecutor:
python
from concurrent.futures import ThreadPoolExecutor
import os
from PIL import Image
def resize_image(path_in, path_out):
img = Image.open(path_in)
img.thumbnail((500, 500))
img.save(path_out)
with ThreadPoolExecutor(max_workers=8) as executor:
for file in os.listdir('input_folder'):
executor.submit(resize_image, f'input_folder/{file}', f'output_folder/{file}')Итог:
- Для I/O (чтение/запись) – асинхронность или потоки
- Для CPU (обработка) – процессы

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