zoukankan      html  css  js  c++  java
  • 死锁:同步中嵌套同步,但锁不同,示例二:

    class DeadLockDemo
    {
        public static void main(String[] args)
        {
            Ticket ticket = new Ticket();
            for(int i = 1;i<10;i++)
            {
                new Thread(ticket,"thread--00"+ i +"--").start();
                try
                {
                    Thread.sleep(10);
                }
                catch(Exception e)
                {
                    System.out.println(e.getMessage());
                }
                ticket.flag = !ticket.flag;
            }
        }
    }

    class Ticket implements Runnable
    {
        private int num = 10000;
        Object object = new Object();
        boolean flag = true;
        
        public void run()
        {
            if(flag)
            {
                while(true)
                {
                    synchronized(object)
                    {
                        sale();
                    }
                }
            }
            else
            {
                while(true)
                {
                    sale();
                }
            }        
        }
        
        public synchronized void sale()
        {
            synchronized(object)
            {
                if(num>0)
                {
                    try
                    {
                        Thread.sleep(10);
                    }
                    catch(Exception e)
                    {
                        
                    }
                    
                    System.out.println(Thread.currentThread().getName()+" .. sale .. "+num--);
                }
            }
        }
    }
  • 相关阅读:
    杭电ACM 2052 Picture
    杭电ACM求平均成绩
    杭电ACM水仙花数
    cigarettes
    分数加减法
    推荐几个sql server牛人的博客
    npm 介绍
    centos Flash Player插件的安装
    node.js学习(1)
    查询功能:yum [list|info|search|provides|whatprovides] 参数
  • 原文地址:https://www.cnblogs.com/cxmsky/p/2860380.html
Copyright © 2011-2022 走看看