java 创建两个线程,实现奇偶数交替
时间: 2024-11-03 11:15:41 浏览: 15
Java 创建两个线程模拟对话并交替输出实现解析
在 Java 中创建两个线程来实现奇偶数交替,通常可以采用以下步骤:
1. **定义一个公共的计数器变量**:这个变量将在两个线程之间共享,用于控制当前显示的数字是奇数还是偶数。
```java
public class Counter {
private int count = 0;
// 其他getter和setter方法
}
```
2. **创建一个 Worker 线程类**,它有一个 run() 方法,会检查计数器并打印对应的奇偶数。
```java
class OddEvenWorker implements Runnable {
private final Counter counter;
public OddEvenWorker(Counter counter) {
this.counter = counter;
}
@Override
public void run() {
while (true) {
if (counter.count % 2 == 0) {
System.out.println(Thread.currentThread().getName() + ": " + (counter.count++));
} else {
Thread.yield(); // 让另一个线程执行
}
}
}
}
```
3. **启动两个工作线程**,每个线程负责打印奇数或偶数。
```java
public static void main(String[] args) {
Counter counter = new Counter();
Thread oddThread = new Thread(new OddEvenWorker(counter), "Odd Thread");
Thread evenThread = new Thread(new OddEvenWorker(counter), "Even Thread");
oddThread.start();
evenThread.start();
// 控制主线程结束
try {
oddThread.join();
evenThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
```
在这个例子中,`join()` 方法用于等待线程执行完毕,保证它们按照交替顺序打印出奇偶数。
阅读全文