Por ejemplo, en el método de herencia la clase del proceso seria:
public class Proceso extends Thread{
public Proceso(){
super();
}
public void run(){
}
}
y la clase principal desde donde se llamaran y ejecutaran todos los procesos seria:
public class Principal{
public static void main(String[]args){
Proceso proceso1 = new Proceso();
Proceso proceso2 = new Proceso();
proceso1.start();
proceso2.start();
}
}En la clase Proceso tenemos el método constructor desde el que se inicializan todos los atributos de la clase y en la clase Principal dentro del método main hacemos una instancia a la clase Proceso desde donde llamaremos al método start.
La segunda opción es muy parecida, el ejemplo seria:
public class Proceso implements Runnable{
public Proceso(){
}
public void run(){
}
}
y para ejecutar este proceso:
public class Principal{
public static void main(String[]args){
Proceso proceso1 = new Thread(new Proceso());
Proceso proceso2 = new Thread(new Proceso());
proceso1.start();
proceso2.start();
}
}Como podemos ver no hay mucha diferencia en cuanto al código de ambos ejemplos, aunque al momento de realizar un sistema con diferentes procesos en paralelo podemos notar que el segundo ejemplo es mas eficiente ya que no se realiza la herencia.
No solo se pueden realizar estos procesos, sino que existen muchos métodos útiles para la clase Thread como sleep que provoca que el intérprete ponga al hilo en curso a dormir durante el número de mili segundos, los métodos suspend y resume que pausan y reanudan los procesos. Es decir que existen muchas maneras de aplicar hilos en un programa
Finalmente podemos concluir que los hilos son una herramienta muy útil en algunos casos, sin embargo es necesario conocer los requerimientos para poder utilizarlos de una manera correcta y eficiente.
Fuentes
http://jarroba.com/multitarea-e-hilos-en-java-con-ejemplos-thread-runnable/
http://codigoprogramacion.com/cursos/java/133-uso-de-hilos-o-threads-en-java.html#.WB6RpPrhBQJ
http://dhw.umh.es/alex-bia/teaching/PC/material/hilos_tutorial-java/cap10-2.htm
http://www.chuidiang.com/java/hilos/hilos_java.php