分别使用继承Thread类和实现runnable接口开 肩线程,其中一个输出奇数,另一个输出偶数
时间: 2024-11-22 09:40:52 浏览: 20
Java实现多线程轮流打印1-100的数字操作
在Java中,创建线程有两种常见的方法:直接继承`Thread`类和实现`Runnable`接口。
1. 继承`Thread`类:
```java
class OddEvenThread extends Thread {
private boolean isOdd;
public OddEvenThread(boolean isOdd) {
this.isOdd = isOdd;
}
@Override
public void run() {
for (int i = 0; ; i++) {
if (isOdd) {
System.out.println(i + " 是奇数");
} else {
System.out.println(i + " 是偶数");
}
// 没有显式调用sleep()会一直运行,可以根据需求添加睡眠时间
}
}
public static void main(String[] args) {
OddEvenThread oddThread = new OddEvenThread(true);
oddThread.start();
OddEvenThread evenThread = new OddEvenThread(false);
evenThread.start();
}
}
```
在这个例子中,我们创建了两个`OddEvenThread`子类,分别代表奇数和偶数线程。它们各自输出对应的数字类型。
2. 实现`Runnable`接口:
```java
class OddEvenRunnable implements Runnable {
private boolean isOdd;
public OddEvenRunnable(boolean isOdd) {
this.isOdd = isOdd;
}
@Override
public void run() {
for (int i = 0; ; i++) {
if (isOdd) {
System.out.println(i + " 是奇数");
} else {
System.out.println(i + " 是偶数");
}
// 同样可以添加睡眠时间
}
}
public static void main(String[] args) {
Thread oddThread = new Thread(new OddEvenRunnable(true));
oddThread.start();
Thread evenThread = new Thread(new OddEvenRunnable(false));
evenThread.start();
}
}
```
这里,我们定义了一个`OddEvenRunnable`类,它实现了`Runnable`接口,并在`run()`方法中处理奇偶数输出。然后在`main`方法中通过`Thread`构造函数和`Runnable`实例创建并启动两个线程。
阅读全文