¿Cuál es la diferencia entre Thread.start() y Thread.run()?
¿Por qué llamamos al start()
método, que a su vez llama al run()
método?
¿ No podemos hacer una llamada directamente a run()
?
Por favor dé un ejemplo donde haya una diferencia.
No, no puedes. Llamar a run ejecutará run()
el método en el mismo hilo, sin iniciar un nuevo hilo.
¿Por qué llamamos al
start()
método, que a su vez llama alrun()
método?
No, eso es impreciso. start()
a su vez no llama al método de ejecución. en su lugar, inicia el hilo que ejecuta el método de ejecución. Esto es nativo.
¿ No podemos hacer una llamada directamente a
run()
?
Si llama run()
directamente, no inicia el hilo, simplemente ejecuta el método en el mismo método de la persona que llama.
Por favor dé un ejemplo donde haya una diferencia.
Hay millones en la web. Por eso no duplico.
En realidad thread.start()
crea un nuevo hilo y tiene su propio escenario de ejecución.
pero thread.run()
sin crear ningún hilo nuevo, sino que ejecuta el método de ejecución en el hilo en ejecución actual.
Entonces, muchachos, si lo están utilizando thread.run()
, piensen de qué sirve el subproceso múltiple si solo desean que un subproceso ejecute todos los métodos de ejecución.
Porque start() no solo llama a run(). Comienza un nuevo hilo y en ese hilo llama a ejecutar().