【发布时间】:2019-08-22 09:55:48
【问题描述】:
在我的 Spring Boot 应用程序中,我有以下 REST 服务
@GetMapping("/testThread")
public Map<String, Object> testThread(HttpServletRequest request){
for (int i=0;i<100000;i++){
System.out.println(i);
}
return null;
}
在这个网络服务中,我从 POSTMAN 工具调用,并且在这个网络服务循环中运行了 100 000 次。
我的要求是在从邮递员调用网络服务之后,我可以使用 Cancel Request 按钮取消该请求,然后在后端 循环也应该停止。
到目前为止,循环正在完成执行。
我们有什么选择吗?
【问题讨论】:
-
您确实可以选择这样做。你试过什么? (另外,简单地说你抛出
InterruptedException不会让它发生。你需要在循环中添加if (Thread.currentThread().isInterrupted()) { throw new InterruptedException(); }或类似的东西。) -
@user2478398 我已经更新了有问题的代码,删除了未使用的 throws 语句,你能建议一些好的链接来满足这个要求吗?
标签: java multithreading spring-boot