Java利用多线程机制编写程序,输出一个问候语,要求每隔1秒钟输出一个字符。用2种方法分别创建线程。 例如:问候语=“welcome!”,运行结果可能有多种情况,如下表所示,分别说明原因及创建线程的方法。
时间: 2024-03-06 15:50:22 浏览: 24
好的,下面是两种不同的方法实现Java多线程编程:
方法1:继承Thread类创建线程
```java
public class GreetingThread extends Thread {
private char c;
public GreetingThread(char c) {
this.c = c;
}
public void run() {
while (true) {
System.out.print(c);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
String greeting = "welcome!";
for (char c : greeting.toCharArray()) {
Thread t = new GreetingThread(c);
t.start();
}
}
}
```
方法2:实现Runnable接口创建线程
```java
public class GreetingRunnable implements Runnable {
private char c;
public GreetingRunnable(char c) {
this.c = c;
}
public void run() {
while (true) {
System.out.print(c);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
String greeting = "welcome!";
for (char c : greeting.toCharArray()) {
Thread t = new Thread(new GreetingRunnable(c));
t.start();
}
}
}
```
两种方法的实现都是通过继承Thread类或实现Runnable接口来创建线程,分别输出问候语中的每一个字符。在这里,我选择使用 while true 循环来使线程不停地输出字符,并且使用 Thread.sleep(1000) 来控制每个字符输出的时间间隔。需要注意的是,由于多个线程同时输出,所以输出的结果可能会出现不同的排列顺序。同时,这也是多线程编程中需要注意的问题之一。
希望我的解答能够帮助到你。