|Hilo A| --> Pila o cola <-- |Hilo B|
Así no tendrías la necesidad de pararlos nunca. Cuando no hay datos, Hilo B se queda esperando. Cuando hilo A añade datos despiertas con el metodo notifyAll() por si Hilo B esta esperando...
Y asi...
Si quieres parar los procesos. La gente no lo recomienda hacer mediante thread.stop(); porque no sabes en que punto se va ha quedar y si te puede generar problemas... Entonces te sugiero que utilices dentro del metodo run() de tu thread alguna artimaña.
Por ejemplo:
Código
public void run() { while(estadoDeMiHilo){//mientras no haya que salir for(int i = 0; i < 10; i++) { datoObtenido = "Hola"; contador=1; contador++; } } if(estadoDeMiHilo==pausa){ wait(); } }
Te recomiendo que leas mucha info y vayas haciendo ejemplos sencillos y una vez que tienes la estructura que quieres comienza a hacer tu programa.