"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Concurrencia de subprocesos en Java

Concurrencia de subprocesos en Java

Publicado el 2024-11-19
Navegar:150

Thread Concurrency In Java

La simultaneidad de subprocesos o subprocesos múltiples en Java avanzado permite que se ejecuten múltiples subprocesos simultáneamente, lo que mejora el rendimiento y la capacidad de respuesta en aplicaciones complejas. A continuación se ofrece un desglose conciso de sus conceptos y utilidades clave.

Características clave de subprocesos múltiples en Java:

  1. Creando hilos.
  2. Gestión de hilos con ejecutores
  3. Utilidades de concurrencia
  4. Marco de bifurcación/unión
  5. Programación asincrónica con futuro completo

1️⃣ Creando hilos.

  • Hilo extendido: cree un nuevo hilo anulando el método run().

  • Implementación de Runnable: pasar una instancia de Runnable a un objeto Thread.

  • Implementación de Callable: a diferencia de Runnable, Callable permite que los subprocesos devuelvan un resultado y manejen excepciones marcadas.

2️⃣ Gestión de hilos con ejecutores.

  • El Executor Framework de Java (java.util.concurrent.ExecutorService) administra grupos de subprocesos, lo que permite un manejo eficiente de las tareas.

  • Ejecutores como FixedThreadPool y CachedThreadPool crean un grupo de subprocesos reutilizables y los administran de manera eficiente para reducir la sobrecarga de crear nuevos subprocesos.

3️⃣ Utilidades de concurrencia

  • Bloqueos: los mecanismos de bloqueo avanzados como ReentrantLock brindan más flexibilidad que los métodos sincronizados, lo que permite bloqueos temporizados e interrumpibles.

  • Variables atómicas: el paquete java.util.concurrent.atomic incluye clases atómicas (AtomicInteger, AtomicLong) que ofrecen subprocesos sin bloqueo-
    operaciones seguras.

  • Sincronizadores:incluye utilidades como:
    CountDownLatch: permite que un hilo espere hasta que se completen otros hilos
    tareas.
    CyclicBarrier: sincroniza un número fijo de subprocesos en un
    común punto de barrera.
    Semáforo: Controla el acceso a los recursos permitiendo un número específico
    de hilos simultáneos.

4️⃣ Marco de unión/bifurcación

  • 1. Para tareas de divide y vencerás, ForkJoinPool divide una tarea en subtareas más pequeñas que se procesan en paralelo, lo que es particularmente útil en algoritmos recursivos.

5️⃣ Programación asincrónica con futuro completo

  • CompletableFuture permite la programación asincrónica y sin bloqueo, lo que permite encadenar y combinar tareas para flujos de trabajo complejos.

Usando el ejemplo de hilo

Llamada de clase principal 2 hilos diferentes

public class ThreadConcurrence {
    public static void main(String[] args) {
        // There is 2 type you have to call thread method
                //1- Extend Thread class
                //1- Implements Runnable class
        // why Implement concept is introduce here
                // because in java multiple thread dose not support that's so why implement class will introduce
                // ex- when u extend (inherit) base call, then at that time this call can not extend another Thread class.
        int n = 10;
        for (int i = 0; i 



Subproceso1--(extiende el subproceso)

public class Thread1 extends Thread{
    //If you are extend Thread class then you  most be used run()
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread1 is running now....");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Subproceso2--(implementa ejecutable)

public class Thread2 implements Runnable {
    //IF you are implement thread Then run() will be executed.
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread2 is running.......");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Conclusión :

Al aprovechar estas herramientas y marcos, el multiproceso avanzado de Java permite crear aplicaciones escalables y de alto rendimiento que pueden manejar tareas simultáneas sin problemas.

Para obtener más información, no dudes en mencionar tu Linkedin y GitHub para obtener ejemplos detallados y ejemplos de código. Déjame saber si deseas realizar algún ajuste específico.

Linkedin: https://www.linkedin.com/in/pravanjan-17p/

GitHub: https://github.com/Prabhanjan-17p

Declaración de liberación Este artículo se reproduce en: https://dev.to/pravanjan17p/thread-concurrency-in-java-idb?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3