Primeros pasos con la concurrencia

Instalación o configuración

Instrucciones detalladas sobre cómo configurar o instalar la simultaneidad.

Ejemplo de ejecución concurrente en Java

import java.util.stream.IntStream;

public class Concurrent {
    public static void printAndWait(String s) {
        System.out.println(s);
        try {
            Thread.sleep(1000);
        } catch (Exception e) {}
    }
    
    public static void main(String[] args) {
        Thread myThread = new Thread() {
            public void run() {
                IntStream.range(1,32)
                .forEach(x -> printAndWait(""+x));
            }
         };
         myThread.start();
         IntStream.range('a', 'z').forEach(x -> printAndWait(""+(char)x));
     }
}

Esto producirá una salida de algo similar a

a
1
b
2
c
3

y así sucesivamente, aunque los resultados pueden variar. Esto se debe a que el código en myThread se ejecuta simultáneamente, en un hilo diferente, como el flujo principal. Es decir, el rango 1-32 es manejado por un subproceso y el rango a-z es manejado por otro.

Dado que no hay sincronización entre los subprocesos, no hay garantía de cuál se ejecutará primero o incluso de que producirán un resultado perfectamente entrelazado.