Java - остановка длинного потока, который обращается к базе данных

Я запускаю пару потоков, но у меня нет их ссылок, чтобы остановить, сигнализируя или что-то. Например, я могупередать переменную какrunning=false на эти темы, потому что у меня нет их ссылок, но есть их имена.

м, используяThreadGroup и всегда у меня есть ссылка на это. Так что я могу сделать что-то вроде этого. Кажется, это не такт работа.

    Thread[] threads = new Thread[threadGroup.activeCount()];
    int count = threadGroup.enumerate(threads);
    for(int i = 0; i < count; i++){
        threads[i].interrupt();
    }

Это образец моей темы.

    public void run{

         try{
             //myDAO.getRecords();
             //this takes 30seconds to 60
             //returns about 3 millions of records

         }catch(Exception e){
             //log
         }
    }

Когда этот поток выполняется, я хочу остановить его в середине. В любом случае запрос к базе данных выполняется, но я хочу прекратить получать результаты.

Все еще яЯ получаю результаты, даже я звонюinterrupt(), Есть ли другие способы сделать это или я сделал что-то не так? В конечном итоге задача состоит в том, чтобы отменить длительный SQL-запрос из Java.

Ответы на вопрос(5)

Ваш ответ на вопрос