黑马程序员技术交流社区

标题: 卖票例子的安全问题 [打印本页]

作者: startrek36    时间: 2015-4-23 18:45
标题: 卖票例子的安全问题
package gongFu;
class Lock
{
        }
class Ticket002 implements Runnable
{
        private int tick=100;
       

        public void run() {
                synchronized(new Lock()){
                while(tick>0)
                {
                        try {
                                Thread.sleep(10);
                        } catch (InterruptedException e) {
                               
                                e.printStackTrace();
                        }
                        System.out.println("售票员"+Thread.currentThread().getName()+"正在卖第"+tick--+"张票");
                }
                }
        }
        }
public class Ticket02 {
public static void main(String[] args) {
        Ticket002 tick=new Ticket002();
        Thread t1=new Thread(tick);
        t1.setName("亚由美");
        Thread t2=new Thread(tick);
        t2.setName("朴秀珍");
        Thread t3=new Thread(tick);
        t3.setName("李河琳");
        Thread t4=new Thread(tick);
        t4.setName("陆慧胜");
        Thread t5=new Thread(tick);
        t5.setName("黄静茵");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
       
       
       
}
}

作者: startrek36    时间: 2015-4-23 18:47
这段代码我给操作共享资源的代码加了锁,为什么还是会打印出错票?请各位来看看!谢谢
作者: startrek36    时间: 2015-4-23 18:51
明白了。原来是生命周期的问题啊!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2