利用多线程机制编写程序,输出一个共享字符串,要求每隔 500 毫秒输出一个字符及当前线程的 名字。(1)通过实现 Runnable 接口创建线程 PrintInfo。 (2)共享字符串:你高中就读的学校名称(包含省、市) (3)创建两个线程 t1,t2,让两个线程交替输出该共享字符串。
时间: 2024-02-04 18:04:05 浏览: 95
好的,我会为您解答这个问题。以下是示例代码:
```java
public class PrintInfo implements Runnable {
private static String schoolName = "广东省深圳市某高中";
private static int index = 0;
private String threadName;
public PrintInfo(String threadName) {
this.threadName = threadName;
}
public void run() {
while (index < schoolName.length()) {
synchronized (schoolName) {
System.out.println(schoolName.charAt(index) + " " + threadName);
index++;
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
PrintInfo p1 = new PrintInfo("t1");
PrintInfo p2 = new PrintInfo("t2");
new Thread(p1).start();
new Thread(p2).start();
}
}
```
这个程序中,我们创建了一个 `PrintInfo` 类,实现了 `Runnable` 接口,并重写了 `run()` 方法。在 `run()` 方法中,我们通过使用 `synchronized` 关键字来保证线程安全,每次输出一个字符后,让 `index` 自增,以便下一个线程能够输出下一个字符。同时,我们通过 `Thread.sleep(500)` 让线程每隔 500 毫秒输出一个字符。
在 `main()` 方法中,我们创建了两个 `PrintInfo` 对象,并分别用 `t1` 和 `t2` 作为它们的名字。然后,我们创建了两个新线程,并启动这两个线程。
这样,就实现了让两个线程交替输出共享字符串的需求。
阅读全文