java编写程序建立两个线程a和b,a线程每隔0.1S输出一个’a’,共输出10个,b线程每隔0.2S输出一个’b’,也是输出10个。
时间: 2024-03-15 07:44:02 浏览: 208
华为Java高级面试题:用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C4D…26Z
5星 · 资源好评率100%
以下是使用 Java 语言实现的代码:
```java
public class Main {
public static void main(String[] args) {
Thread threadA = new Thread(new PrintThread('a', 10, 100));
Thread threadB = new Thread(new PrintThread('b', 10, 200));
threadA.start();
threadB.start();
try {
threadA.join();
threadB.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class PrintThread implements Runnable {
private char c;
private int count;
private long interval;
public PrintThread(char c, int count, long interval) {
this.c = c;
this.count = count;
this.interval = interval;
}
@Override
public void run() {
for (int i = 0; i < count; i++) {
System.out.print(c);
try {
Thread.sleep(interval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
在上述代码中,我们首先定义了一个 `PrintThread` 类,它实现了 `Runnable` 接口,并重写了 `run` 方法。在 `PrintThread` 类中,我们定义了三个字段 `c`、`count` 和 `interval`,分别表示要输出的字符、输出的次数和每次输出的时间间隔。在 `run` 方法中,我们使用 `for` 循环来输出字符,并通过调用 `Thread.sleep` 方法来实现每隔一定时间输出一个字符的效果。
接下来,在 `main` 函数中,我们创建了两个 `Thread` 对象 `threadA` 和 `threadB`,分别将 `PrintThread` 对象和不同的参数作为它们的构造函数参数。然后我们通过调用 `start` 方法启动这两个线程,让它们同时运行。
最后,我们通过调用 `join` 方法等待这两个线程运行结束。这样,程序就能按照预期的方式输出字符 `'a'` 和 `'b'`。
阅读全文