Java 多线程编程:使用继承和实现接口计算素数
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();
}
}
代码说明
-
继承
Thread类- 创建一个类继承
Thread类,并重写run()方法。run()方法包含要执行的代码,即计算指定范围内的素数。 - 在
main()方法中,创建Thread类对象,并调用start()方法启动线程。
- 创建一个类继承
-
实现
Runnable接口- 创建一个类实现
Runnable接口,并实现run()方法。run()方法包含要执行的代码,即计算指定范围内的素数。 - 在
main()方法中,创建Runnable接口实现类对象,并使用它创建一个Thread类对象,最后调用start()方法启动线程。
- 创建一个类实现
本教程展示了两种创建 Java 多线程程序的常用方法,希望能帮助您理解多线程的概念和应用。
注意: 以上代码示例中的 isPrime() 方法使用了一个简单的素数判断算法,您也可以根据需要选择其他更优化的算法。
原文地址: https://www.cveoy.top/t/topic/jmiv 著作权归作者所有。请勿转载和采集!