选择default starter app for java并将以下内容添加到HomeController
的{{1}}方法中:
index
然后在浏览器中运行几个标签System.out.println("Before");
Thread.sleep(5000);
System.out.println("After");
。
预期的行为是,一旦从浏览器选项卡发出请求,就会打印http://localhost:9000
。
虽然实际结果是后续请求仅在之后开始执行,但前一个请求已完成。请注意,仅在控制器中调用相同方法时才会观察到这种情况:两种不同的方法同时成功运行。
也许我出错了,但我在Before
中尝试了几乎所有可能的配置,看起来线程池有足够的线程,但我还是无法完成同时执行不同线程中的方法。
答案 0 :(得分:2)
这很可能是因为您的浏览器拒绝同时向同一资源发出请求,而与Play无关。当我在我的机器上运行相同的测试时,无论我打开了多少个选项卡,我都看到Chrome对索引页面的两个请求设置了上限,而当我从多个不同的控制台窗口运行curl时,我看不到这样的限制。
您的浏览器真的不适合用来运行这样的测试。