Iniciar / Suspender / Reanudar / Suspender ... un método invocado por otra clase

Quiero implementar un clasificador de K-NN en cualquier momento, pero no puedo encontrar una manera de llamar al método "clasificar (...)" durante un período de tiempo específico, suspenderlo, obtener los resultados disponibles antes de que se suspenda el método, reanudar método por un período de tiempo específico, suspéndalo, obtenga los resultados disponibles antes de que el método fuera suspendido, y así sucesivamente ... Utilizo una estructura de datos para obtener resultados aproximados. Mientras el algoritmo atraviesa la estructura de datos, eventualmente encontrará el vector de datos de entrenamiento real.

public class AnytimeKNN{
 public int classify(queryPoint, k){
   class_label;
   1. Assign an initial value to 'class_label'.
   2.while(not actual training data vectors are encountered){
     1. traverse the data structure
     2. assign a new value to 'class_label'
    }
  }
}

Quiero llamar al método 'clasificar (..)' desde un método principal de la siguiente manera:

Inicia el método 'clasificar (..)'Detenga el método 'clasificar (..)' cuando se asigna el valor inicial a 'class_label'.Obtener la etiqueta inicialContinuar el método 'clasificar (..)' por X cantidad de tiempoPausa el método 'clasificar (..)'Consigue la nueva 'class_label'Reanude el método 'clasificar (..)' durante X cantidad de tiempo y así sucesivamente ....

¡Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta