编写两个线程,一个线程打印1-26的整数,另一个线程打印字母A-Z。打印顺序为1A2B3C….26Z。即按照整数和字母的顺序从小到大打印,并且每打印两个整数后,打印一个字母,交替循环打印,直到打印到整数26和字母Z结束。
时间: 2024-10-18 20:16:05 浏览: 30
要编写这样的程序,可以使用Java中的`Thread`类、`Runnable`接口以及`join()`方法来同步两个线程的执行。首先,创建一个实现了`Runnable`接口的类,将整数和字母的打印逻辑封装在一起,然后为每个任务创建一个线程。以下是简单的示例:
```java
public class PrintSequentially implements Runnable {
private int num;
private char letter;
public PrintSequentially(int num, char letter) {
this.num = num;
this.letter = letter;
}
@Override
public void run() {
while (true) {
System.out.println(num);
if (num == 26 && letter == 'Z') {
break; // 打印完所有数字和字母后退出循环
}
printLetter();
num++; // 增加数字
if (num > 25) { // 如果超过25,进入下一个字母循环
num = 1;
letter++;
}
}
}
private void printLetter() {
if (letter <= 'Z' && letter >= 'A') {
System.out.print(letter);
} else {
throw new RuntimeException("Invalid character sequence");
}
}
public static void main(String[] args) {
Thread thread1 = new Thread(new PrintSequentially(1, 'A'));
Thread thread2 = new Thread(new PrintSequentially(2, 'B'));
// 启动线程并保持顺序执行
thread1.start();
try {
thread2.join(); // 等待thread1完成后再开始thread2
} catch (InterruptedException e) {
e.printStackTrace();
}
thread1.join(); // 等待两个线程都完成后结束程序
}
}
```
在这个例子中,`PrintSequentially`类实现了`Runnable`接口,它维护当前的数字和字母,当打印完一个数字后,切换到打印字母,如此交替进行,直到达到指定的条件。
阅读全文