问题描述: 用Java程序模拟上课过程, 有student和teacher,其中student准备10分钟后再开始上课,teacher在输出3句“上课”后,吵醒休眠的线程student,运用多线程知识编写。 预期输出: 学生休息10分钟 上课 上课 上课 学生被吵醒 学生开始上课
时间: 2024-03-19 20:45:35 浏览: 18
以下是Java代码实现,利用sleep()方法实现线程休眠和唤醒:
```java
public class Main {
public static void main(String[] args) {
Student student = new Student();
Teacher teacher = new Teacher(student);
teacher.start();
student.start();
}
}
class Student extends Thread {
@Override
public void run() {
try {
System.out.println("学生休息10分钟");
sleep(10000); // 学生休息10分钟,线程休眠10秒
System.out.println("学生被吵醒");
System.out.println("学生开始上课");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Teacher extends Thread {
private Student student;
public Teacher(Student student) {
this.student = student;
}
@Override
public void run() {
System.out.println("上课");
System.out.println("上课");
System.out.println("上课");
student.interrupt(); // 吵醒休眠的线程
}
}
```
程序运行结果:
```
上课
上课
上课
学生休息10分钟
学生被吵醒
学生开始上课
```