我最近在一次采访中被要求设计文件上传功能。经过初步讨论,面试官问我是否可以设计多个线程。我的想法是,由于网络带宽有限,并且互联网通过串行数据连接进行连接,因此网络瓶颈将比CPU瓶颈早得多,并且多线程实现的性能提升有限。但是面试官对多线程方法一无所知。支持多线程上传方法的论点是什么? (我最近才知道AWS有一个允许在多个线程上载的库。因此我应该没有意识到一些优点。)
答案 0 :(得分:1)
由于bandwidth delay product,即使在高速网络上,TCP连接的速率也可能受到限制。
在诸如TCP的传输控制协议(TCP)之类的协议设计中,高带宽延迟产品是一个重要的问题案例,因为只有在发送方发送足够数量的TCP / IP协议时,该协议才能实现最佳吞吐量。要求停止并等待直到接收器收到确认消息,确认已成功接收该数据。如果与带宽延迟乘积相比发送的数据量不足,则表明该链路没有处于繁忙状态,并且该协议的运行效率低于该链路的峰值效率。
解决具有大带宽延迟产品的连接上TCP限制的一种简单方法是并行处理多个流。