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服务和呼叫。您可以通过调用来检索实例