为了账号安全,请及时绑定邮箱和手机立即绑定

弹簧线程中断

弹簧线程中断

慕慕森 2023-04-26 13:54:52
我有一个简单的弹簧控制器,它等待完成一些动作。假设它看起来像下面这样:@GetMapping("/wait")public void waitForFinish() throws InterruptedException {    while (!allJobsAreFinished()) {        Thread.sleep(5000);    }}现在,出于某种原因,我想在一个单独的请求中中断这个线程。为此,我将正在运行的线程保存到一个映射中,并在一个单独的方法调用中.interrupt()对其进行调用:private Map<String, Thread> runningThreads = new ConcurrentHashMap<>();@GetMapping("/wait")public void waitForFinish() throws InterruptedException {    Thread currentThread = Thread.currentThread();    runningThreads.put("testId", currentThread);    //...    runningThreads.remove("testId");}@GetMapping("/cancel")public void cancel() {    runningThreads.get("testId").interrupt();}我的问题如下:中断 Spring 创建的线程是个好主意吗?如果我中断 Spring 线程会出什么问题?或者最好创建ExecutorService、提交我的任务并通过那里中断它们Future?
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

不要中断您不知道后果的线程。

可以对您创建、启动并且知道副作用是什么的线程执行此操作。


查看完整回答
反对 回复 2023-04-26
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信