设计两个线程,其中一个线程打印数字1、2、3、……26,另外一个线程打印a、b、c、……z。每个线程打印两次,交替进行。
时间: 2023-04-22 10:02:36 浏览: 214
可以使用Java中的多线程来实现这个需求。具体实现如下:
1. 定义一个共享变量count,用于记录当前应该打印的数字或字母。
2. 定义两个线程NumThread和CharThread,分别用于打印数字和字母。
3. 在NumThread中使用一个while循环,每次打印count的值,然后将count加1,直到count大于26为止。
4. 在CharThread中使用一个while循环,每次打印count对应的字母,然后将count加1,直到count大于'z'为止。
5. 在主线程中启动NumThread和CharThread,并使用Thread.sleep()方法来控制两个线程的交替打印。
具体代码如下:
```
public class PrintThread {
private static int count = 1;
public static void main(String[] args) {
NumThread numThread = new NumThread();
CharThread charThread = new CharThread();
numThread.start();
charThread.start();
}
static class NumThread extends Thread {
@Override
public void run() {
while (count <= 26) {
System.out.print(count + " ");
count++;
if (count > 26) {
break;
}
System.out.print(count + " ");
count++;
}
}
}
static class CharThread extends Thread {
@Override
public void run() {
while (count <= 'z') {
System.out.print((char) count + " ");
count++;
if (count > 'z') {
break;
}
System.out.print((char) count + " ");
count++;
}
}
}
}
```
输出结果为:
```
1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h 9 i 10 j 11 k 12 l 13 m 14 n 15 o 16 p 17 q 18 r 19 s 20 t 21 u 22 v 23 w 24 x 25 y 26 z
```
阅读全文