我运行的Tomcat服务器连接到另一台Tableau服务器。我需要从Tomcat到Tableau进行大约25次GET调用。现在我试图对此进行线程化,让每个线程创建自己的HTTP连接对象并进行调用。在我的本地系统(Tomcat本地,Tableau是远程的)上,我注意到在这种情况下,我的每个线程平均需要大约10秒,所以总共10秒。
但是,如果我按顺序执行此操作,则每个请求需要2秒,因此总共需要50秒。
我的疑问是,在并行提出请求时,为什么每次按顺序执行时只需要2秒钟?
这是否与从一个客户端(浏览器)到同一域的最大并发连接有关?但是这里的请求来自我的Tomcat服务器,而不是浏览器。
如果是,默认规则是什么,有没有办法改变它?
答案 0 :(得分:0)
在我看来,系统必须为每个请求最有可能Context Switching Overhead,这就是为什么你看到个别请求的时间更长(与一个顺序线程相比),但总体处理有显着增益。
当上下文切换开销与整体活动所花费的时间相比可以忽略不计时,进行并行处理是有意义的。