我可以同时进行多少个同时的HTTP请求?底层操作系统有什么规则吗?我在Windows 7上。例如:如果我启动100个线程,它们是否会同时执行?如果是,它是否取决于RAM的数量还是固定的,与RAM大小无关?
答案 0 :(得分:2)
这与往常一样......在这里要记住几个方面:
(1)您的PC /服务器一次可以处理多少个线程?这取决于内存,CPU功率(例如内核数),服务器正在做什么,以及您的线程是否进行I / O密集型工作。使用.NET,ThreadPool也有不同的限制,具体取决于版本(例如,对于.NET 4:32位版本最大为1023个线程,64位版本为32768)。
(2)您的Windows也可能配置为允许最大数量的传出HTTP或TCP连接(如果我没有记错的话,Windows有64K传出TCP连接的硬限制。)
(3)如果您通过代理服务器进行连接,该代理服务器也可能对传出连接施加限制。如果您通过防火墙,情况也是如此;这也可以阻止过多的同时传出连接。
(4)您是否打开了同一台服务器的所有连接?因为Web服务器也有其限制,并且可能配置为仅允许来自给定源的x个传入请求。
所以我担心你必须尝试找出你的情况有哪些限制,除非你知道这些数字。