Nie uruchomiono haka Java Shutdown

Jestem nowy w Javie / wątkach i odziedziczyłem coś takiego jak poniższy kod. Jest to program wiersza poleceń, który main () uruchamia tylko 5-6 różnych rodzajów wątków i kończy działanie za pomocą ^ C. Chcę dodać hak zamykający, aby poprawnie zamknąć wszystkie wątki i dostosować go w następujący sposób.

Dodałem hak Shutdown i metodę stopThread () we wszystkich wątkach (takich jak ten w klasie MyWorker)

Problem polega na tym, że po naciśnięciu ^ C nie widzę komunikatu końcowego z metody uruchamiania wątku. Czy to się dzieje w tle, czy jest coś nie tak z moją metodą. Czy istnieje lepszy wzór, który powinienem podążać?

Dzięki

 public class Main {
     public static MyWorker worker1 = new MyWorker();
     // .. various other threads here

     public static void startThreads() {
         worker1.start();
         // .. start other threads
     }

     public static void stopThreads() {
         worker1.stopThread();
         // .. stop other threads
     }

     public static void main(String[] args)
             throws Exception {

         startThreads();

         // TODO this needs more work (later)

         Runtime.getRuntime().addShutdownHook(new Thread() {
             @Override
             public void run() {
                 try {
                     stopThreads();
                 } catch (Exception exp) {

                 }
             }
         });
     } }

 public class MyWorker extends Thread {
     private volatile boolean stop = false;

     public void stopThread() {
         stop = true;
     }

     public void run() {
         while (!stop) {
             // Do stuff here
         }
         // Print exit message with logger
     } 
}

questionAnswers(5)

yourAnswerToTheQuestion