创建两个线程,实现奇数和偶数的交替输出java
时间: 2024-11-04 10:13:50 浏览: 7
Java线程使用同步锁交替执行打印奇数偶数的方法
在Java中,我们可以创建两个线程分别负责处理奇数和偶数的输出。这通常通过`Thread`类、`Runnable`接口或者`ExecutorService`来实现。下面是一个简单的示例,展示了如何使用Runnable接口创建两个线程:
```java
public class OddEvenThread implements Runnable {
private int number;
private final Object lock = new Object();
public OddEvenThread(int number) {
this.number = number;
}
@Override
public void run() {
while (true) {
synchronized (lock) {
if (number % 2 == 0) { // 输出偶数
System.out.println(Thread.currentThread().getName() + ": " + number++);
try {
lock.wait(); // 等待另一个线程唤醒
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
} else { // 输出奇数
System.out.println(Thread.currentThread().getName() + ": " + number++);
lock.notifyAll(); // 唤醒其他等待的线程
}
}
}
}
public static void main(String[] args) {
new Thread(new OddEvenThread(1), "OddThread").start();
new Thread(new OddEvenThread(0), "EvenThread").start();
}
}
```
在这个例子中,`OddEvenThread`实现了`Runnable`,并维护了一个共享的锁对象`lock`用于控制输出顺序。每个线程会在循环中检查当前数字是否为偶数,如果是则输出并等待,如果不是则输出并唤醒其他线程。主函数中创建了两个线程,分别处理奇数和偶数。
阅读全文