La diferencia entre clases de subprocesos e implementaciones de interfaces ejecutables
2 La diferencia entre los dos métodos de creación:
La primera forma de construir un hilo: heredar Thread, subclase La La clase copiará el método de ejecución.
1. La clase de definición hereda la clase de subproceso;
2. El propósito es copiar el método de ejecución y el código que ejecutarán todos los subprocesos se almacena en el método de ejecución.
3. Cree un objeto de subproceso creando un objeto de subclase de la clase de subproceso
4. Llame al método de inicio del subproceso, inicie el subproceso y ejecute el método de ejecución; .
La segunda forma de crear un hilo: implementar una interfaz Runnable.
1. Defina la clase que implementa la interfaz Runnable.
2. Anule el método de ejecución en la interfaz (utilizado para encapsular el código que ejecutará el hilo).
3. Cree un objeto de hilo a través de la clase de hilo;
4. Pase el objeto de subclase que implementa la interfaz Runnable como un parámetro real al constructor en la clase Thread.
3 El siguiente es un código específico que muestra dos métodos para crear un hilo:
Heredar el código de la clase de hilo para crear un hilo:
Público class ThreadDemo {
Public static void main(String[] args) {
//ThreadTest hereda la clase Thread.
Prueba de hilo t 1 = nueva Prueba de hilo(" 1 ");
t 1 .
}
}
//La clase Thread hereda la clase Thread.
La clase pública ThreadTest extiende el hilo {
private int tickets = 100 //Cada hilo tiene 100 tickets.
Prueba de hilo pública (){}
Prueba de hilo pública(nombre de cadena){
Super(nombre);
} p >
@override
ejecución pública vacía(){
mientras(ticket gt; 0){
sistema println(hilo. actual. thread().getName());
}
}
}
Cómo implementar la interfaz Runnable:
categoría persona {
privada int suma
pública void add(int n){
suma = n;
system . out . println(" sum = " sum ");
}
}
//La clase Persona implementa la interfaz Runnable.
Clase Persona implementa Runnable{
Private b = new Person();
Public void Runnable(){
Sincronizado(b){
for(int x = 0; x lt3; x)
{
b . p>
}
}
}
4 Hay muchas formas de utilizar la interfaz Runnable en el desarrollo real, porque:
Al heredar la clase Thread, puede crear varios subprocesos. Sin embargo, este método tiene una limitación. Si una clase ya tiene su propia clase principal, no puede heredar la clase Thread.
La implementación de la interfaz Runnable puede evitar las limitaciones de la herencia única.