Есть ли преимущества использования нескольких потоков для загрузки файла? - PullRequest
0 голосов
/ 15 октября 2018

Недавно в одном из интервью меня попросили разработать функцию загрузки файлов.После первоначального обсуждения интервьюер спросил, могу ли я создать дизайн для нескольких потоков.Я думал, что, поскольку пропускная способность сети ограничена, а интернет подключен через последовательное соединение для передачи данных, узкое место в сети значительно возрастет до узкого места в ЦП, а многопоточная реализация будет иметь ограниченное улучшение производительности.Но интервьюер был одержим идеей многопоточного подхода.Каковы аргументы в пользу многопоточной загрузки?(Недавно я узнал, что в AWS есть библиотека, которая разрешает загрузку в несколько потоков. Поэтому должны быть некоторые преимущества, о которых я не знаю.)

1 Ответ

0 голосов
/ 16 октября 2018

Соединение TCP может быть ограничено по скорости даже в высокоскоростной сети из-за продукта с задержкой полосы пропускания .

Продукт с высокой задержкой полосы пропускания является важной проблемойслучай в дизайне протоколов, таких как протокол управления передачей (TCP) в отношении настройки TCP, потому что протокол может достичь оптимальной пропускной способности, только если отправитель отправляет достаточно большое количество данных, прежде чем он должен остановиться и ждать, пока подтверждающее сообщение не будетполучен от получателя, подтверждая успешное получение этих данных.Если количество отправленных данных недостаточно по сравнению с продуктом с задержкой полосы пропускания, то канал не занят и протокол работает ниже пиковой эффективности для канала.

Один простой способ работыОграничение TCP на соединения с большими продуктами задержки с пропускной способностью заключается в параллельном выполнении нескольких потоков.

...