我是一名 J2ee 开发人员,我是框架的新手。我进行了彻底的研究,但找不到任何明确的文档。
问题是,play 如何处理请求。它会像J2ee容器一样为每个请求创建一个线程吗?
如果不是每个请求线程那么如果我们将 Play 应用程序作为 war 文件部署在 Tomcat 中会发生什么。
最佳答案
首先,play2框架不支持tomcat。
使用 play 和 netty,您不必为每个请求分配一个线程。 默认情况下,在 Play 中每个核心有一个线程,但我们假设您只有一个线程来处理所有请求;
在此架构中,一个线程由所有请求共享。所以线程处理第一个请求,当它空闲时(当它调用 db 或 url 等时它是空闲的)它开始处理第二个请求。因此线程不必为第一个请求返回响应以启动第二个请求。
有人可能会认为系统使用这种架构会变得太慢,但事实并非如此,因为性能取决于 cpu。
关于multithreading - Play Framework 中每个请求的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783583/