Java 多线程编程:使用继承和实现接口计算素数

本教程演示了如何使用 Java 创建多线程程序,通过继承 Thread 类和实现 Runnable 接口两种方式,实现一个子线程来计算指定整数范围内的所有素数。

继承 Thread

以下代码示例演示了使用继承 Thread 类的方式:

public class JavaExample15_1a extends Thread {
    private int start;
    private int end;
    
    public JavaExample15_1a(int start, int end) {
        this.start = start;
        this.end = end;
    }
    
    public void run() {
        for (int i = start; i <= end; i++) {
            if (isPrime(i)) {
                System.out.println(i);
            }
        }
    }
    
    private boolean isPrime(int n) {
        if (n <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
    
    public static void main(String[] args) {
        int start = Integer.parseInt(args[0]);
        int end = Integer.parseInt(args[1]);
        
        JavaExample15_1a thread = new JavaExample15_1a(start, end);
        thread.start();
    }
}

实现 Runnable 接口

以下代码示例演示了使用实现 Runnable 接口的方式:

public class JavaExample15_1b implements Runnable {
    private int start;
    private int end;
    
    public JavaExample15_1b(int start, int end) {
        this.start = start;
        this.end = end;
    }
    
    public void run() {
        for (int i = start; i <= end; i++) {
            if (isPrime(i)) {
                System.out.println(i);
            }
        }
    }
    
    private boolean isPrime(int n) {
        if (n <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
    
    public static void main(String[] args) {
        int start = Integer.parseInt(args[0]);
        int end = Integer.parseInt(args[1]);
        
        JavaExample15_1b example = new JavaExample15_1b(start, end);
        Thread thread = new Thread(example);
        thread.start();
    }
}

代码说明

  1. 继承 Thread

    • 创建一个类继承 Thread 类,并重写 run() 方法。run() 方法包含要执行的代码,即计算指定范围内的素数。
    • main() 方法中,创建 Thread 类对象,并调用 start() 方法启动线程。
  2. 实现 Runnable 接口

    • 创建一个类实现 Runnable 接口,并实现 run() 方法。run() 方法包含要执行的代码,即计算指定范围内的素数。
    • main() 方法中,创建 Runnable 接口实现类对象,并使用它创建一个 Thread 类对象,最后调用 start() 方法启动线程。

本教程展示了两种创建 Java 多线程程序的常用方法,希望能帮助您理解多线程的概念和应用。

注意: 以上代码示例中的 isPrime() 方法使用了一个简单的素数判断算法,您也可以根据需要选择其他更优化的算法。

Java 多线程编程:使用继承和实现接口计算素数

原文地址: https://www.cveoy.top/t/topic/jmiv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录