我有一個簡單的彈簧控制器,它等待完成一些動作。假設(shè)它看起來像下面這樣:@GetMapping("/wait")public void waitForFinish() throws InterruptedException { while (!allJobsAreFinished()) { Thread.sleep(5000); }}現(xiàn)在,出于某種原因,我想在一個單獨的請求中中斷這個線程。為此,我將正在運行的線程保存到一個映射中,并在一個單獨的方法調(diào)用中.interrupt()對其進行調(diào)用: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 創(chuàng)建的線程是個好主意嗎?如果我中斷 Spring 線程會出什么問題?或者最好創(chuàng)建ExecutorService、提交我的任務(wù)并通過那里中斷它們Future?
添加回答
舉報
0/150
提交
取消