我的应用程序具有非常高的CPU负载平均值,原因是jetty启动大量线程来处理请求,并且可能阻塞数据,当数据准备好时,许多线程变得可运行。我想让jetty等待所有数据读取,然后启动线程来调用servlet,在这种情况下,servlet永远不会被阻塞。
有可能吗?
答案 0 :(得分:1)
不可能。
Jetty需要一个线程来读取请求内容主体本身(对于诸如mime multitpart,表单参数等),或者使用该线程分派到您的Web服务器以便您的Servlet读取请求内容主体。
然后还有Async I / O(在Servlet 3.1中引入)的附加功能,它允许你编写一个Servlet,当它可以读取或写入套接字时只使用一个线程,让线程回退到ThreadPool如果两者都不能完成。