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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 914360849 中级黑马   /  2015-5-24 16:25  /  184 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*需求:简单的卖票程序
多窗口同时买票;
*/
/*
死锁:
同步中嵌套同步
*/
class Ticket implements Runnable
{
        private   int tick=500;
         Object obj =new Object();
        boolean flag=true;
        public  void run()
        {
                if(flag)
                {
                        while(true)
                        {
                                synchronized(obj)
                                {
                                        show();
                                }
                        }
                }
                else
                {
                        while(true)
                                show();
                }
        }

        public synchronized void show()
        {
                                synchronized(obj)
                                        {
                                                if(tick >0)
                                                {
                                                        try{Thread.sleep(10);}catch(Exception e){}
                                                        System.out.println(Thread.currentThread().getName()+" code: "+tick--);
                                                }
                                        }

//                if(tick >0)
//                        {
//                          try{Thread.sleep(10);}catch(Exception e){}
//                                System.out.println(Thread.currentThread().getName()+" ...show... "+tick--);
//                        }
        }
}
class  DeadLockDemo
{
        public static void main(String[] args)
        {
                Ticket t =new Ticket();

                Thread t1=new Thread (t);//
                Thread t2=new Thread (t);//
               

                t1.start();
                 try{Thread.sleep(10);}catch(Exception e){}
                t.flag=false;
                t2.start();
//                Thread t3=new Thread (t);//
//                Thread t4=new Thread (t);//
//                t3.start();
//                t4.start();

                 
        }
}

1 个回复

正序浏览
   这是用EditPlus这个工具做的么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马