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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘 佳 中级黑马   /  2012-9-28 09:49  /  2312 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码在视频基础上自己加了红色部分,因为while为true是无限循环,想让他在不符合条件时停止循环。
加了之后运行起来却只有一个线程在跑,我想不出来哪错了。。求解。

class Ticket implements Runnable//extends Thread
{
        private  int tick = 200;
        private boolean flag=true;
        Object obj=new Object();
        public void run()
        {
               
                while(flag)
                {
                        synchronized(obj)
                        {
                                if(tick>0)
                                {
                                        flag=true;
                                        try{Thread.sleep(3);}catch(Exception e){}
                                        System.out.println(Thread.currentThread().getName()+"....sale : "+ tick--);
                                }
                                else
                                        flag=false;
                               
                        }
                       
                       
                       
                }
        }
}


class  TicketDemo
{
        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);//创建了一个线程;
                t1.start();
                t2.start();
                t3.start();
                t4.start();


               
        }
}

1 个回复

倒序浏览
楼主,像您这样的情况,我以前遇到过,别人说正常.
我拿你的代码,把2万张火车票卖给大家,解决铁道部的问题,让大家可以国庆回家.
卖到差不多3000多张的时候,才有其它线程执行.你把票提高到2千或2万,多运行几次就行了.
Thread-0....sale : 16990
Thread-0....sale : 16989
Thread-0....sale : 16988
Thread-0....sale : 16987
Thread-0....sale : 16986
Thread-0....sale : 16985
Thread-0....sale : 16984
Thread-0....sale : 16983
Thread-0....sale : 16982
Thread-0....sale : 16981
Thread-0....sale : 16980
Thread-0....sale : 16979
Thread-0....sale : 16978
Thread-0....sale : 16977
Thread-0....sale : 16976
Thread-0....sale : 16975
Thread-0....sale : 16974
Thread-0....sale : 16973
Thread-0....sale : 16972
Thread-0....sale : 16971
Thread-0....sale : 16970
Thread-0....sale : 16969
Thread-0....sale : 16968
Thread-0....sale : 16967
Thread-0....sale : 16966
Thread-0....sale : 16965
Thread-0....sale : 16964
Thread-0....sale : 16963
Thread-0....sale : 16962
Thread-0....sale : 16961
Thread-0....sale : 16960
Thread-0....sale : 16959
Thread-0....sale : 16958
Thread-0....sale : 16957
Thread-0....sale : 16956
Thread-0....sale : 16955
Thread-3....sale : 16954
Thread-3....sale : 16953
Thread-3....sale : 16952
Thread-3....sale : 16951
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马