File upload 使用多线程上传文件有什么好处吗?

File upload 使用多线程上传文件有什么好处吗?,file-upload,concurrency,parallel-processing,io,network-programming,File Upload,Concurrency,Parallel Processing,Io,Network Programming,我最近在一次采访中被要求设计一个文件上传功能。在最初的讨论之后,面试官问我是否可以设计多线程。我的想法是,由于网络带宽有限,互联网是通过串行数据连接连接的,因此网络瓶颈将比CPU瓶颈更早出现,而多线程实现的性能改进有限。但面试官对多线程方法非常着迷。支持多线程上传方法的理由是什么?(我最近才知道AWS有一个允许在多个线程上上传的库。因此,应该有一些我不知道的优点。)TCP连接即使在高速网络上,也可能因为以下原因而在速率上受到限制 在传输控制协议(TCP)等协议的设计中,高带宽延迟产品是TCP调优

我最近在一次采访中被要求设计一个文件上传功能。在最初的讨论之后,面试官问我是否可以设计多线程。我的想法是,由于网络带宽有限,互联网是通过串行数据连接连接的,因此网络瓶颈将比CPU瓶颈更早出现,而多线程实现的性能改进有限。但面试官对多线程方法非常着迷。支持多线程上传方法的理由是什么?(我最近才知道AWS有一个允许在多个线程上上传的库。因此,应该有一些我不知道的优点。)

TCP连接即使在高速网络上,也可能因为以下原因而在速率上受到限制

在传输控制协议(TCP)等协议的设计中,高带宽延迟产品是TCP调优方面的一个重要问题,因为只有当发送方在需要停止并等待直到从接收方接收到确认消息,确认成功接收到该数据之前发送足够多的数据,协议才能实现最佳吞吐量。如果发送的数据量与带宽延迟乘积相比不足,则链路未保持繁忙状态,并且协议的运行效率低于链路的峰值效率

一种简单的方法是并行处理多个流,以克服TCP对具有大带宽延迟产品的连接的限制