请输出以下代码的运行结果:public class PrintLetters extends Thread { @Override public void run() { for (char c = 'A'; c <= 'Z'; c++) { System.out.print(c + " "); } } } public class PrintNumbers extends Thread { @Override public void run() { for (int i = 0; i <= 100; i++) { System.out.print(i + " "); } } } public class Main { public static void main(String[] args) { PrintLetters printLetters = new PrintLetters(); PrintNumbers printNumbers = new PrintNumbers(); printLetters.start(); printNumbers.start(); } }
时间: 2024-04-26 07:20:44 浏览: 8
这段代码会创建两个线程,一个是 PrintLetters 线程,另一个是 PrintNumbers 线程。当主线程调用 printLetters.start() 方法和 printNumbers.start() 方法时,这两个线程就会开始执行。
PrintLetters 线程会输出从 A 到 Z 的字母,PrintNumbers 线程会输出从 0 到 100 的数字。由于这两个线程是并发执行的,所以输出结果可能会交错出现。
例如,可能会出现以下输出结果:
A 0 1 B 2 C 3 4 D 5 6 E 7 8 F 9 G 10 H 11 I 12 13 J 14 K 15 L 16 17 M 18 19 N 20 O 21 22 P 23 Q 24 R 25 26 S 27 T 28 U 29 30 V 31 W 32 X 33 Y 34 Z 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
相关问题
java代码,创建两个线程,一个线程打印英文字母“A”-“z”,一个打印0-100。两种方式都要实现。
方式一:使用继承Thread类的方式实现
```
public class PrintLetters extends Thread {
@Override
public void run() {
for (char c = 'A'; c <= 'Z'; c++) {
System.out.print(c + " ");
}
}
}
public class PrintNumbers extends Thread {
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
System.out.print(i + " ");
}
}
}
public class Main {
public static void main(String[] args) {
PrintLetters printLetters = new PrintLetters();
PrintNumbers printNumbers = new PrintNumbers();
printLetters.start();
printNumbers.start();
}
}
```
方式二:使用实现Runnable接口的方式实现
```
public class PrintLetters implements Runnable {
@Override
public void run() {
for (char c = 'A'; c <= 'Z'; c++) {
System.out.print(c + " ");
}
}
}
public class PrintNumbers implements Runnable {
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
System.out.print(i + " ");
}
}
}
public class Main {
public static void main(String[] args) {
PrintLetters printLetters = new PrintLetters();
PrintNumbers printNumbers = new PrintNumbers();
Thread thread1 = new Thread(printLetters);
Thread thread2 = new Thread(printNumbers);
thread1.start();
thread2.start();
}
}
```
创建两个线程,要求如下: (1)一个线程输出100个1~26,另一个线程输出100个A~Z。 (2)一个线程使用集成Thread 类的写法,另一个线程使用实现Runnable接口的写法。
好的,下面是代码实现:
1. 继承Thread类的写法
```
class PrintNumberThread extends Thread {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
for (int j = 1; j <= 26; j++) {
System.out.print(j + " ");
}
System.out.println();
}
}
}
class PrintLetterThread extends Thread {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
for (char j = 'A'; j <= 'Z'; j++) {
System.out.print(j + " ");
}
System.out.println();
}
}
}
public class MultiThreadDemo {
public static void main(String[] args) {
PrintNumberThread numberThread = new PrintNumberThread();
PrintLetterThread letterThread = new PrintLetterThread();
numberThread.start();
letterThread.start();
}
}
```
2. 实现Runnable接口的写法
```
class PrintNumberRunnable implements Runnable {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
for (int j = 1; j <= 26; j++) {
System.out.print(j + " ");
}
System.out.println();
}
}
}
class PrintLetterRunnable implements Runnable {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
for (char j = 'A'; j <= 'Z'; j++) {
System.out.print(j + " ");
}
System.out.println();
}
}
}
public class MultiThreadDemo {
public static void main(String[] args) {
PrintNumberRunnable numberRunnable = new PrintNumberRunnable();
PrintLetterRunnable letterRunnable = new PrintLetterRunnable();
Thread numberThread = new Thread(numberRunnable);
Thread letterThread = new Thread(letterRunnable);
numberThread.start();
letterThread.start();
}
}
```
希望这个例子可以帮助你理解Java多线程中的一些概念。