实验8-1 创建线程创建两个线程,要求如下: (1)一个线程输出100个1~26,另一个线程输出100个A~Z。 (2)一个线程使用集成Thread 类的写法,另一个线程使用实现Runnable接口的写法。 输出格式: 每一行输出一个1~26数字或者是A~Z的字符
时间: 2024-11-22 16:22:30 浏览: 2
实验8-1 的目标是通过创建两个线程来分别输出1到26的数字和大写字母A到Z。以下是使用Java编程实现这个需求的一种方法:
**使用Thread类的方式**:
```java
public class PrintNumbers implements Runnable {
private int number = 1;
@Override
public void run() {
while (number <= 26) {
System.out.print(number++);
if (number % 10 == 0) { // 每10个数换行
System.out.println();
}
}
}
}
public class PrintLetters extends Thread {
@Override
public void run() {
String[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < 26; i++) {
System.out.print(letters[i]);
if ((i + 1) % 10 == 0) { // 每10个字母换行
System.out.println();
}
}
}
}
public class Main {
public static void main(String[] args) {
PrintNumbers numThread = new PrintNumbers();
PrintLetters letThread = new PrintLetters();
numThread.start(); // 启动数字线程
letThread.start(); // 同时启动字母线程
}
}
```
**使用实现Runnable接口的方式**:
```java
public class PrintNumbersRunnable implements Runnable {
private int number = 1;
@Override
public void run() {
// ... (打印数字部分)
}
}
public class PrintLettersRunnable implements Runnable {
private String[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
@Override
public void run() {
// ... (打印字母部分)
}
}
public class Main {
public static void main(String[] args) {
PrintNumbersRunnable numRunnable = new PrintNumbersRunnable();
PrintLettersRunnable letRunnable = new PrintLettersRunnable();
Thread numThread = new Thread(numRunnable);
Thread letThread = new Thread(letRunnable);
numThread.start(); // 启动数字线程
letThread.start(); // 同时启动字母线程
}
}
```
在这两个例子中,我们创建了两个Runnable实现了类(PrintNumbers和PrintLetters),然后通过继承Thread类(第一种方式)或作为Runnable实例传递给Thread构造函数(第二种方式)来创建线程,并分别启动它们。每个线程内部都有自己的循环,按要求输出数字和字母。
阅读全文