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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 信仰年轻 中级黑马   /  2015-9-22 06:12  /  150 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • /*
  • 写一个死锁程序
  • */  
  •   
  • //定义一个类来实现Runnable,并复写run方法  
  • class LockTest implements Runnable  
  • {  
  •     private boolean flag;  
  •     LockTest(boolean flag)  
  •     {  
  •         this.flag=flag;  
  •     }  
  •     public void run()  
  •     {  
  •         if(flag)  
  •         {  
  •             while(true)  
  •             {  
  •                 synchronized(LockClass.locka)//a锁  
  •                 {  
  •                     System.out.println(Thread.currentThread().getName()+"------if_locka");  
  •   
  •                     synchronized(LockClass.lockb)//b锁  
  •                     {  
  •                     System.out.println(Thread.currentThread().getName()+"------if_lockb");  
  •                     }  
  •                 }  
  •             }  
  •         }  
  •         else  
  •         {  
  •             while(true)  
  •             {  
  •                 synchronized(LockClass.lockb)//b锁  
  •                 {  
  •                   System.out.println(Thread.currentThread().getName()+"------else_lockb");  
  •   
  •                     synchronized(LockClass.locka)//a锁  
  •                     {  
  •                    System.out.println(Thread.currentThread().getName()+"------else_locka");  
  •                     }  
  •                 }  
  •             }  
  •         }  
  •     }  
  • }  
  •   
  • //定义两个锁  
  • class LockClass  
  • {  
  •     static Object locka = new Object();  
  •     static Object lockb = new Object();  
  • }  
  •   
  • class DeadLock  
  • {  
  •     public static void main(String[] args)  
  •     {  
  •         //创建2个进程,并启动  
  •         new Thread(new LockTest(true)).start();  
  •         new Thread(new LockTest(false)).start();  
  •     }  
  • }  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马