线程

来源:互联网 发布:炉石传说 秋日淘宝店 编辑:程序博客网 时间:2024/06/05 11:45

 最近在学Java中的线程,今天老师刚讲了一道demo自己还没试,自己写了一下,程序代码如下,可能有写错误!

//student1睡20分钟 student2睡40分钟.. teacher叫醒student1,叫四句“上课了”,然后student1叫醒student2
class sleep implements Runnable{
Thread student1,student2,teacher;
public sleep(){//定义一个构造函数,用来显示对应的哪一个对象
student1=new Thread(this,"student1");
student2=new Thread(this,"student2");
teacher=new Thread(this,"teacher");
}
public void run(){
while(true){
if(Thread.currentThread().getName().equals(student1));
try {
Thread.sleep(20*60*1000);
System.out.println("我是student1");
} catch (InterruptedException e) {
System.out.println("我是student1,被teacher叫醒!");
student2.interrupt();
}
if(Thread.currentThread().getName().equals(student2));
try {
Thread.sleep(40*60*1000);
System.out.println("我是student2");
} catch (InterruptedException e) {
System.out.println("我是student2,被student1叫醒!");
}
if(Thread.currentThread().getName().equals(teacher));
for(int i=0;i<3;i++){
System.out.println("ring!!!");
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
System.out.println("我是teacher,叫醒student1!");
student1.interrupt();
}
}
}
}
public class sleepDemo {
public static void main(String []args){
sleep s1=new sleep();
s1.student1.start();
s1.student2.start();
s1.teacher.start();
}
 
}
 

原创粉丝点击