上课睡觉

放学了, 妈妈去接小豆豆

豆豆同学: 豆豆今天上课睡觉

妈妈: 豆豆, 你上课睡觉啦
豆豆: 嗯, 想睡觉

小家伙,很老实的回答

妈妈苦笑一下, 这么小上课就睡觉, 长大怎么办啊......

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/129556/viewspace-584464/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/129556/viewspace-584464/

以下是一个使用 Java 语言设计的模拟上课情景的程序,其中有三个线程(student1、student2、teacher),并且满足题目所述的条件: ```java public class SimulationClass { public static void main(String[] args) { Student student1 = new Student("Student1", 10); Student student2 = new Student("Student2", 10); Teacher teacher = new Teacher(); student1.start(); student2.start(); teacher.start(); } } class Student extends Thread { private String name; private int sleepTime; public Student(String name, int sleepTime) { this.name = name; this.sleepTime = sleepTime; } @Override public void run() { try { System.out.println(name + " is sleeping for " + sleepTime + " minutes."); Thread.sleep(sleepTime * 1000); System.out.println(name + " is ready for class."); } catch (InterruptedException e) { e.printStackTrace(); } } } class Teacher extends Thread { @Override public void run() { try { System.out.println("Teacher: Class is about to begin."); Thread.sleep(2000); System.out.println("Teacher: Class starts now."); synchronized (SimulationClass.class) { SimulationClass.class.notifyAll(); } } catch (InterruptedException e) { e.printStackTrace(); } } } ``` 在这个程序中,我们定义了一个 `SimulationClass` 类作为程序的入口,它创建了两个 `Student` 对象和一个 `Teacher` 对象,并依次启动它们。 `Student` 类代表学生,每个学生有一个名字和一个睡眠时间,它重写了 `run()` 方法,表示学生在睡觉一段时间后准备上课。`Teacher` 类代表老师,它重写了 `run()` 方法,在说了两句话后唤醒所有休眠的学生线程。 在 `Teacher` 类的 `run()` 方法中,首先输出了一句话表示课程即将开始,然后让当前线程休眠 2 秒钟,模拟老师说了一句 “上课!” 的时间。接着,使用 `synchronized` 关键字锁定了 `SimulationClass` 类,调用了 `notifyAll()` 方法,唤醒了所有休眠的学生线程。这样,学生们就会在老师说完 “上课!” 后开始上课了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值