我们可以停止后端线程吗?

时间:2019-04-03 14:18:53

标签: java multithreading spring-boot

在我的spring boot项目中,我具有以下GET Web服务

@GetMapping("/testThread")
@Transactional
public Map<String, Object> testThread(HttpServletRequest request) throws InterruptedException {

for (int i=0;i<10;i++){
    Thread.sleep(3000);
    System.out.println(i);
}
    return null;
}

我正在从邮递员那里调用此Web服务,并且该Web服务线程正在启​​动,线程正在运行10次。

我的要求是10秒钟后从邮递员调用Web服务后,我可以通过“取消请求”按钮取消该请求,然后后端线程也应该停止。

截至目前已运行10次。

我们是否可以选择在两者之间停止执行此循环?

1 个答案:

答案 0 :(得分:-1)

一个简单的解决方案是从testThread方法获取线程的ID,也许可以使用方法:

Thread.currentThread().getId()

此后,您可以创建另一个Rest Controller,该控制器在输入中接受id线程并将其杀死。 但这不是一个安全的解决方案