Java 在spring控制器中生成新线程

Java 在spring控制器中生成新线程,java,multithreading,servlets,controller,Java,Multithreading,Servlets,Controller,因此,在下面的代码中,当我执行yService.performAction()时,它会对许多项目执行此操作,并且会占用太多时间 有人建议我尝试使用线程来加快速度,所以我上网查看了一下,发现不建议从控制器中生成新的子线程,因为这可能会弄乱JavaEE容器线程池。如果我的yService.performation()需要花时间运行并且需要加快速度,那么我有什么选择 许多人一直建议使用石英来产生新的线程。我不确定我是否想做这么复杂的事情。如何在不同的线程中运行特定的服务?有什么简单的方法吗 @Cont

因此,在下面的代码中,当我执行
yService.performAction()
时,它会对许多项目执行此操作,并且会占用太多时间

有人建议我尝试使用线程来加快速度,所以我上网查看了一下,发现不建议从控制器中生成新的子线程,因为这可能会弄乱JavaEE容器线程池。如果我的
yService.performation(
)需要花时间运行并且需要加快速度,那么我有什么选择

许多人一直建议使用石英来产生新的线程。我不确定我是否想做这么复杂的事情。如何在不同的线程中运行特定的服务?有什么简单的方法吗

@Controller
@RequestMapping("/test")
public class TestController {
private static final Logger logger = Logger.getLogger(TestController.class);

@Autowired
XService xService;
@Autowired
private YService yService;

@RequestMapping(method = { RequestMethod.GET })
public void testCheck(HttpServletRequest request, HttpServletResponse response) throws IOException {

    try {
        List<SL> somelist = XService.getAllX();

        StringBuffer status = new StringBuffer("SUCCESS\n\n");

        for (SL sl : somelist) {
            boolean flag = false;
            try {
                flag = yService.performAction(sl);
            } catch (Exception e) {
                logger.error(e.getMessage(), e);
            }

        }

        response.setStatus(HttpServletResponse.SC_OK);
        response.getWriter().write(status.toString());

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
        response.getWriter().write("FAILED");
    }
}
@控制器
@请求映射(“/test”)
公共类测试控制器{
私有静态最终记录器=Logger.getLogger(TestController.class);
@自动连线
XService-XService;
@自动连线
私人网络服务;
@RequestMapping(方法={RequestMethod.GET})
public void testCheck(HttpServletRequest请求、HttpServletResponse响应)引发IOException{
试一试{
List-somelist=XService.getAllX();
StringBuffer状态=新建StringBuffer(“成功\n\n”);
for(SL:somelist){
布尔标志=假;
试一试{
flag=yService.performAction(sl);
}捕获(例外e){
logger.error(e.getMessage(),e);
}
}
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().write(status.toString());
}捕获(例外e){
logger.error(e.getMessage(),e);
response.getWriter().write(“失败”);
}
}

}您最好的选择是使用Executor服务和呼叫。您可以通过调用来检索实例

您最好的选择是使用Executor服务和呼叫。您可以通过调用来检索实例