El comenzar() El método de la clase de subproceso se utiliza para comenzar la ejecución del subproceso. El resultado de este método son dos subprocesos que se ejecutan simultáneamente: el subproceso actual (que regresa de la llamada al método de inicio) y el otro subproceso (que ejecuta su método de ejecución).
El método start() llama internamente al método run() de la interfaz Runnable para ejecutar el código especificado en el método run() en un hilo separado.
El hilo de inicio realiza las siguientes tareas:
- Esta es un hilo nuevo.
- El hilo pasa del estado Nuevo al estado Ejecutable.
- Cuando el hilo tenga la oportunidad de ejecutarse, se ejecutará su método run() de destino.
Sintaxis
public void start()
Valor de retorno
It does not return any value.
Excepción
Excepción de estado de hilo ilegal - Esta excepción se produce si el método start() se llama más de una vez.
Ejemplo 1: ampliando la clase de subproceso
public class StartExp1 extends Thread { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp1 t1=new StartExp1(); // this will call run() method t1.start(); } }Pruébalo ahora
Producción:
Thread is running...
Ejemplo 2: implementando una interfaz ejecutable
public class StartExp2 implements Runnable { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp2 m1=new StartExp2 (); Thread t1 =new Thread(m1); // this will call run() method t1.start(); } }Pruébalo ahora
Producción:
Thread is running...
Ejemplo 3: cuando llamas al método start() más de una vez
public class StartExp3 extends Thread { public void run() { System.out.println('First thread running...'); } public static void main(String args[]) { StartExp3 t1=new StartExp3(); t1.start(); // It will through an exception because you are calling start() method more than one time t1.start(); } }Pruébalo ahora
Producción:
First thread running... Exception in thread 'main' java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) at StartExp3.main(StartExp3.java:12)