创建2个线程一个每隔一秒打印一次hello一个线程每隔一秒打印一次word
时间: 2024-10-12 09:10:08 浏览: 26
创建两个线程,一个打印"hello",另一个打印"word",你可以使用Java的`Thread`类和`synchronized`关键字来实现同步,避免它们同时打印。这里是一个简单的示例:
```java
class PrintHello implements Runnable {
private int count = 0;
@Override
public void run() {
while (true) {
synchronized (this) { // 使用当前对象作为锁
if (count % 2 == 0) { // 每隔两秒打印一次
System.out.println("Hello");
}
try {
wait(1000); // 等待1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
count++;
}
}
}
}
class PrintWord extends PrintHello {
@Override
public void run() {
super.run(); // 调用父类run方法
while (true) {
synchronized (this) { // 使用当前对象作为锁
if (count % 2 != 0) { // 每隔一秒打印一次word
System.out.println("Word");
}
try {
wait(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
count++;
}
}
}
}
public class Main {
public static void main(String[] args) {
Thread helloThread = new Thread(new PrintHello());
Thread wordThread = new Thread(new PrintWord());
helloThread.start();
wordThread.start();
// 程序会阻塞在这里直到所有线程结束
// 如果你想让主线程继续运行,可以添加一个标志变量并设置它来唤醒等待的线程
}
}
```
在这个例子中,两个线程分别交替打印"hello"和"word",每秒切换一次。`synchronized`关键字用于保证在同一时刻只有一个线程能执行该部分代码。
阅读全文