我有一個Java線程執行一些繁重的數據庫操作。我正在編寫一個API來殺死這個Java線程。 我爲此使用executor框架,所以一旦我得到未來,我打電話future.cancel(),然後檢查線程中斷。Java:殺死執行數據庫操作的線程
以上邏輯工作除非線程正在執行DB操作,這imples即殺死線程將首先涉及殺死DB連接,這意味着DBA干預scenarions細。
我的目標是創建不需要從支持團隊的任何干預的API。
上如何去任何想法將是非常有益的。
CODE:
private void killBatches1() {
if (killBatchRunning.compareAndSet(false, true)) {
try{
Iterator<Future<?>> futureIterator = futuresForBatch.iterator();
while (futureIterator.hasNext()) {
Future<?> future = futureIterator.next();
if (future.cancel(true))
;
futureIterator.remove();
}
}finally{
killBatchRunning.set(false);
}
}
哪裏是代碼? – TheWhiteRabbit 2013-02-28 08:03:41
一些代碼將是非常有益的 – 2013-02-28 08:04:10
我添加的代碼。問題更多的是邏輯,所以我沒有粘貼它,人們剛剛敲響了降價! – Lokesh 2013-02-28 08:06:34