Primer contacto con la tecnología Java multithreading

1. Descripción general de procesos e hilos

Un proceso puede entenderse directamente como un programa en ejecución. Un proceso puede ejecutar varios subprocesos, y los subprocesos dependen del proceso.
注意:Computadoras multiproceso no significa que la CPU pueda realizar múltiples tareas al mismo tiempo. De hecho, las computadoras multiproceso nos hacen sentir que la CPU está realizando múltiples tareas al mismo tiempo a través del cambio continuo y eficiente de programas .
Enhebre en 单线程y 多线程. Multithreading significa que el programa tiene múltiples rutas para realizar la misma tarea. La esencia del subproceso múltiple es en realidad tener más oportunidades de obtener los derechos de ejecución de la CPU . Es precisamente por esta característica que el subproceso múltiple tendrá problemas de seguridad de subprocesos. La existencia de subprocesos múltiples no es para aumentar la velocidad de ejecución del programa, sino para aumentar la tasa de utilización de la aplicación.

Dos. Implementación de subprocesos múltiples

1. A través de la clase Thread

Las operaciones específicas son: heredar la clase Thread, reescribir el método de ejecución, crear una instancia de la subclase Thread (es decir, crear un objeto de hilo) y llamar al método de inicio para iniciar el hilo. Código de prueba:

package package03_thread;

public class ThreadDemo01 extends Thread {
    
    
    //车票数量
    private int tickets = 10;

    @Override
    //重写run方法
    public void run() {
    
    
        while (tickets > 0) {
    
    
            System.out.println(Thread.currentThread().getName() + "卖出第【" + tickets-- + "】张火车票");
        }
    }

    public static void main(String[] args) {
    
    
        //调用start方法启动线程
        new ThreadDemo01().start();
        new ThreadDemo01().start();
        new ThreadDemo01().start();
    }
}

Ejecutar captura de pantalla:

Inserte la descripción de la imagen aquí
Tenga en cuenta que el método Thread no comparte datos entre subprocesos y solo puede heredar la clase Thread.

Implementación de interfaz 2.Runable

La implementación específica es: reescribir el método de ejecución, crear una instancia de la clase de implementación Runable y pasar esta instancia al objeto Thread, crear el objeto Thread y llamar al método de inicio para iniciar el hilo.
Código de prueba:

package package03_thread;

public class RunableDemo01 implements Runnable{
    
    
    private int tickets = 10;
    @Override
    public void run() {
    
    
        while(tickets > 0) {
    
    
            System.out.println(Thread.currentThread().getName()+"卖出第【"+tickets--+"】张火车票");
        }
    }

    public static void main(String[] args) {
    
    
        Runnable runnable = new RunableDemo01();
        new Thread(runnable).start();
        new Thread(runnable).start();
        new Thread(runnable).start();
    }
}

Ejecutar captura de pantalla:
Inserte la descripción de la imagen aquí
este método permite compartir datos y, al mismo tiempo, el mismo objeto ejecutable se entrega a varios subprocesos para su procesamiento, separando de manera efectiva el código y los datos. En general, este método se usa con más frecuencia.

3. Implementación del grupo de subprocesos

Código de prueba:

package package03_thread;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class PoolDemo01 implements Runnable{
    
    
    @Override
    public void run() {
    
    
        System.out.println(Thread.currentThread());
    }
    private static int Pool_num = 10;

    public static void main(String[] args) {
    
    
        ExecutorService executorService = Executors.newFixedThreadPool(5);
        for (int i = 0; i < Pool_num; i++) {
    
    
            PoolDemo01 poolDemo01 = new PoolDemo01();
            executorService.execute(poolDemo01);
        }
        executorService.shutdown();
    }
}

Ejecutar captura de pantalla:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_46550452/article/details/107215361
Recomendado
Clasificación