我有一个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