Tengo una clase derivada de thread:
Trabajo t = new Trabajo() ;
t.run() ;//esto no está ejecutándose concurrentemente!
¿Porqué la ejecución no es simultánea cuando la ejecuto así ?
Recibe ayuda de expertos
Es gratis y fácil
Respuestas, votos y comentarios
Recibe puntos, vota y da la solución
Tengo una clase derivada de thread:
Trabajo t = new Trabajo() ;
t.run() ;//esto no está ejecutándose concurrentemente!
¿Porqué la ejecución no es simultánea cuando la ejecuto así ?
Según la documentación de la clase Thread de java, podemos ver que el método start es el encargado de crear un nuevo hilo para ejecutar el método run. Es decir, tendremos dos hilos: el que hizo la llamada a Trabajo.start() y el propio run de Trabajo.
Si llamamos al método run por nuestra cuenta sin más, no se creará un nuevo hilo y, por lo tanto, la ejecución no será concurrente.