Creación y comparación de subprocesos múltiples de heredar la clase Thread e implementar la interfaz Runnable

Creación de subprocesos múltiples

  • Herede la clase Thread, anule el método run () y llame a start para iniciar el hilo
public class ThreadDemo extends Thread {
    
    
    @Override
    public void run() {
    
    // 使用新线程运行for循环中的代码
        for (int i = 0; i < 10; i++) {
    
    
            System.out.println("新线程输出:" + i);// 在控制台输出10条测试语句
        }
    }
    
    public static void main(String[] args) {
    
    
        ThreadDemo thread = new ThreadDemo();// 创建Thread类对象
        thread.start();// 调用Thread类的start()方法来启动新线程
        for (int i = 0; i < 10; i++) {
    
    // 在主线程中运行for循环中的代码
            System.out.println("主线程输出:" + i);// 在控制台输出10条测试语句
        }
    }
}

Resumen: tenga en cuenta que el subproceso no se ejecuta necesariamente de inmediato y la CPU está programada para ejecutarse

  • Implementar la interfaz Runnable
public class RunnableDemo implements Runnable {
    
    
    @Override
    public void run() {
    
    // 使用新线程运行for循环中的代码
        for (int i = 0; i < 10; i++) {
    
    
            System.out.println("新线程输出:" + i);// 在控制台输出10条测试语句
        }
    }
    
        public static void main(String[] args) {
    
    
        Runnable runnable = new RunnableDemo();// 创建Runnable接口的对象
        Thread thread = new Thread(runnable);// 利用Runnable接口的对象创建Thread类对象
        thread.start();// 调用Thread类的start()方法来启动新线程
        for (int i = 0; i < 10; i++) {
    
    // 在主线程中运行for循环中的代码
            System.out.println("主线程输出:" + i);// 在控制台输出10条测试语句
        }
    }
}

Comparación de heredar la clase Thread e implementar la interfaz Runnable:

El método que implementa la interfaz Runnable generalmente se usa para nuevos subprocesos comunes por las siguientes razones:

  1. Java solo admite herencia única. Una vez que una clase hereda otras clases, no puede heredar la clase Therad. Por ejemplo, si la clase de estudiante Student hereda la clase Person, no puede crear un hilo heredando la clase Thread. Para superar este inconveniente, la clase Thread proporciona otro método de construcción Thread (Runnable target), en el que Runnable es una interfaz, solo tiene un método run (). Al crear un objeto de hilo a través del método de construcción Thread (destino Runnable), solo necesita pasar un objeto de instancia que implemente la interfaz Runnable al método, de modo que el hilo creado llamará al método run () que implementa la interfaz Runnable como el código en ejecución, y no es necesario llamar al método run () en la clase Thread.

  2. Cree una gran cantidad de objetos de clase Thread, lo cual es costoso

  3. Muchas clases nuevas que simplifican el desarrollo de subprocesos en Java SE5.0 utilizan la interfaz Runnable

Supongo que te gusta

Origin blog.csdn.net/xun08042/article/details/113107037
Recomendado
Clasificación