Categorías
Concurrency

Java Thread: un código de ejemplo primordial

class A implements Runnable {
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }
}
 
class B implements Runnable {
 
    public void run() {
        new A().run();
        new Thread(new A(), "name_thread2").run();
        new Thread(new A(), "name_thread3").start();
    }
}
 
public class Main {
 
    public static void main(String[] args) {
        new Thread(new B(), "name_thread1").start();
    }
}

¿Cuál es la salida?

============================
name_thread1
name_thread1
name_thread3
============================ 

La diferencia entre «new Thread (new A (),» name_thread2 «). Run ();» y «new Thread (new A (),» name_thread3 «). Start ();» es que el método start () crea un nuevo hilo y ejecuta el método run en ese hilo. Si invoca el método run () directamente, el código del método run se ejecutará en el hilo actual. Esto explica por qué el código imprime dos líneas con el mismo nombre de hilo.

  Monitores: la idea básica de la sincronización de Java

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

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