A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无辜被杀害 中级黑马   /  2015-3-24 15:14  /  447 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
需求:  有两个线程学生和老师
        学生准备睡一会再上课,老师说了3下上课
        叫醒睡觉的学生
*/
class ClassRoom implements Runnable
{
        Thread teacher,student;
        //目标对象将线程作为自己的的成员
        ClassRoom()
        {
                teacher=new Thread(this);
                student=new Thread(this);
                teacher.setName("王老师");
                student.setName("张三");
        }
        public void run()
        {
                if(Thread.currentThread()==student)
                {
                        try
                        {
                                System.out.println(student.getName()+"正在睡觉");
                                Thread.sleep(1000*60*60);
                        }
                        catch(InterruptedException e)
                        {
                                System.out.println(teacher.getName()+"上课了,快醒醒");
                        }
                        System.out.println(student.getName()+"醒了,开始听课");       
                }
                else if(Thread.currentThread()==teacher)
                {
                        for(int i=0;i<3;i++)
                        {
                               
                                try
                                {
                                        Thread.sleep(100);
                                }
                                catch(InterruptedException e){}       
                                System.out.println("上课!");
                        }
                        student.interrupt();//叫醒student
                }
        }
       
}



class ClassDemo
{
        public static void main(String[] args)
        {
                ClassRoom room=new ClassRoom();
                room.student.start();
                room.teacher.start();
        }
}

2 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
nbbbbbbbbbbbb
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马