Cada vez que anulemos el método start(), nuestro método start() se ejecutará como una llamada de método normal y no se creará un nuevo hilo. Podemos anular el método de inicio/ejecución de la clase Thread porque no es definitivo. Pero no se recomienda anular el método start() , de lo contrario, arruina el concepto de subprocesos múltiples.
// Java program illustrate the concept of // overriding of start() method class Bishal extends Thread { public void start() { System.out.println("Start Method"); } public void run() { System.out.println("Run Method"); } } class Geeks { public static void main(String[] args) { Bishal thread = new Bishal(); thread.start(); System.out.println("Main Method"); } }
Producción:
Start Method Main Method
NOTA: En el programa anterior, cuando llamamos al método start() mediante un objeto de la clase Bishal, no se creará ningún subproceso y todas las funciones se realizarán únicamente mediante el subproceso principal.
Pila de tiempo de ejecución proporcionada por JVM para el programa anterior:
Cuando llamamos al método start() en el subproceso, llama internamente al método run() con el subproceso recién creado. Por lo tanto, si anulamos el método start(), el método run() no se llamará hasta que escribamos el código para llamar al método run().
Otro ejemplo:
class GThread extends Thread { public void run() { System.out.println("GThread: run()"); } public void start() { System.out.println("GThread: start()"); } } class GRunnable implements Runnable { public void run() { System.out.println("GRunnable: run()"); } public void start() { System.out.println("GRunnable: start()"); } } public class MyTest { public static void main(String args[]) { GThread gt = new GThread(); GRunnable gr = new GRunnable(); Thread thread = new Thread(gr); gt.start(); thread.start(); } }
Producción:
GThread: start() GRunnable: run()
Cuando se llama a GThread.start(), la salida es: “GThread:start()”. Cuando llamamos a thread.start(), el nuevo hilo llamará al método run() de runnable y obtendremos el mensaje «GRunnable:run()».
Este artículo es una contribución de Bishal Kumar Dubey . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA