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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 秦久启 高级黑马   /  2013-5-26 17:59  /  1299 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

某班有a、b、c3个寝室,辅导员要求3个寝室长来登记寝室成员名单(每登记一个名单休息0.5秒),每寝室4人,哪个寝室先登记,不确定,请用多线程同步模拟这一过程。自己写的感觉不对,求高手解决,谢谢。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

4 个回复

倒序浏览
public class DormitoryHead extends Thread{
        private String dorName;//宿舍名
    public DormitoryHead(String dorName){
            super(dorName);
            this.dorName = dorName;
    }
        public void checkPerson() {
                System.out.println("我是"+this.dorName+"宿舍的舍长");
                for(int i=1;i<5;i++){
                        System.out.println(this.dorName+"宿舍的第"+i+"个人我已经查完了");
                        try {
                                Thread.sleep(500);
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }
        }
        @Override
        public void run() {
                checkPerson();
        }

        public static void main(String[] args) {
               
                DormitoryHead d1 = new DormitoryHead("a");
                DormitoryHead d2 = new DormitoryHead("b");
                DormitoryHead d3 = new DormitoryHead("c");
                d1.start();
                d2.start();
                d3.start();
        }

}
回复 使用道具 举报
SOAR 发表于 2013-5-26 18:47
public class DormitoryHead extends Thread{
        private String dorName;//宿舍名
    public DormitoryHead ...

你这个写的感觉有问题啊!和题目的意思不符合,下面是我刚刚写的,不知道对不对!不过还是要谢谢你。public class Demo
{
        public static void main(String args[])
        {
               
                Person p1 = new Person();
                Thread t1 = new Thread(p1,"a寝室");
                Thread t2 = new Thread(p1,"b寝室");
                Thread t3 = new Thread(p1,"c寝室");
                t1.start();
                t2.start();
                t3.start();
               
        }
}
class Person implements Runnable
{
       
        public void run()
        {
               
                for(int x=1;x<5;x++)
                {
                       
                        synchronized(this){
                                try
                                {
                                        Thread.sleep(500);
                                        System.out.println(Thread.currentThread().getName() + "的" + x + "正在登记");
                                }
                                catch (Exception e)
                                {
                                        e.printStackTrace();
                                }
                               
                               
                        }       
                       
                }
        }
       
}
回复 使用道具 举报
秦久启 发表于 2013-5-26 18:59
你这个写的感觉有问题啊!和题目的意思不符合,下面是我刚刚写的,不知道对不对!不过还是要谢谢你。publ ...

完整的题目是什么
回复 使用道具 举报
SOAR 发表于 2013-5-26 19:03
完整的题目是什么

上面就是完整的题目,一个字都没有少。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马