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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© FlyFish 中级黑马   /  2014-11-17 23:21  /  775 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Ticket implements Runnable
{
        private int tick=100;
        Object obj=new Object();
        int count=0;
        public void run()
        {
                while(true)
                {
                        synchronized(obj)
                        {
                                if(tick>0)
                                {
                                        try
                                        {
                                                Thread.sleep(20);
                                        }
                                        catch (Exception e)
                                        {
                                        }
                                        System.out.println(Thread.currentThread().getName()+"售出第"+tick--+"张票");
                                        count++;
                                }else
                                        return;
                        }
                       
                }
                System.out.println(count);       
        }
}

class Demo
{
        public static void main(String[] args)
        {
                Ticket t=new Ticket();
                Thread t1=new Thread(t);
                Thread t2=new Thread(t);
                Thread t3=new Thread(t);
                Thread t4=new Thread(t);

                t2.start();
                t3.start();
                t4.start();
                t1.start();
        }
}
我的本意是想测试一下,打印的票数是否是100张,所以用了计数,编译错误,求教原因。



评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3 淡定

查看全部评分

3 个回复

正序浏览
本帖最后由 FlyFish 于 2014-11-18 01:33 编辑
Quasimodo 发表于 2014-11-17 23:31
死循环了,访问不到下面那句.  你的本意应该是在else后面加break吧

3Q!!!这个对,想起来了,break结束循环,return结束函数
回复 使用道具 举报
System.out.println(count);   问题 在这里哦while(true),你得输出语句在whie循环的外面,这个事无限循环,jvm执行不到 你输出的count的,你把它放在while里面就ok了!
回复 使用道具 举报
死循环了,访问不到下面那句.  你的本意应该是在else后面加break吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马