Salida de Programas Java | Conjunto 46 (multihilo)

Requisito previo: subprocesos múltiples en Java

1. ¿Cuál será el resultado del programa?

class Test extends Thread {
public
    void run()
    {
        System.out.println("Run");
    }
} class Myclass {
public
    static void main(String[] args)
    {
        Test t = new Test();
        t.start();
    }
}

Opciones:
1. Un hilo creado
2. Dos hilos creados
3. Depende del sistema
4. Ningún hilo creado
Salida:

 The answer is option (2)

Explicación: en el programa anterior, se creará un subproceso, es decir, el subproceso principal que es responsable de ejecutar el método main() y el subproceso secundario se creará después de la ejecución de t.start(), que es responsable de ejecutar run() método.

2. ¿Cuál será el resultado del programa?

class Test extends Thread {
public
    void run()
    {
        System.out.println("Run");
    }
} class Myclass {
public
    static void main(String[] args)
    {
        Test t = new Test();
        t.run();
    }
}

Opciones:
1. Un hilo creado
2. Dos hilos creados
3. Depende del sistema
4. Ningún hilo creado

Producción:

 The answer is option (1)

Explicación: en el programa anterior, solo se creará un subproceso, es decir, el subproceso principal que es responsable de ejecutar únicamente el método main(). El método run() es llamado por el objeto t como un método normal.

3. ¿Cuál será el orden de salida del programa?

class Test extends Thread {
public
    void run()
    {
        System.out.println("Run");
    }
} class Myclass {
public
    static void main(String[] args)
    {
        Test t = new Test();
        t.start();
        System.out.println("Main");
    }
}

Opciones:
1. Ejecutar principal
2. Ejecutar principal
3. Depender del programa
4. Depender de JVM

Producción:

 The answer is option (4)

Explicación: en el programa anterior, no podemos predecir el orden exacto de la salida, ya que lo decide el programador de subprocesos, que forma parte de JVM.

4. ¿Cuál será el resultado del programa?

class Test implements Runnable {
public
    void run()
    {
        System.out.println("Run");
    }
} class Myclass {
public
    static void main(String[] args)
    {
        Test t = new Test();
        t.start();
        System.out.println("Main");
    }
}

Opciones:
1. Ejecutar principal
2. Ejecutar principal
3. Error de tiempo de compilación
4. Depender de JVM

Producción:

 The answer is option (3)

Explicación: en el programa anterior, obtendremos un error de tiempo de compilación porque el método start() está presente solo en la clase Thread y estamos implementando la interfaz Runnable.

5. ¿Cuál será el resultado del programa?

class Test implements Runnable {
public
    void run()
    {
        System.out.println("Run");
    }
} class Myclass {
public
    static void main(String[] args)
    {
        Thread t1 = new Thread();
        t1.start();
        System.out.println("Main");
    }
}

Opciones:
1. Ejecutar
2. Principal
3. Error de tiempo de compilación
4. Ejecutar principal

Producción:

 The answer is option (2)

Explicación: en el programa anterior, llamamos al método start() de la clase Thread, que es responsable de ejecutar el método run() de la clase Thread y el método run() de la clase Thread tiene una implementación vacía. Es por eso que se creará un subproceso secundario, pero no ejecutará el método Test class 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *