黑马程序员技术交流社区

标题: 死锁笔试代码题 [打印本页]

作者: 王训印    时间: 2015-7-23 23:38
标题: 死锁笔试代码题
死锁:同步中嵌套同步,有关死锁代码是毕老师交代必须会自己写的代码
  1. package com.itheima;

  2. class Deadlock  implements Runnable
  3. {
  4.         private boolean flag ;
  5.        
  6.         Deadlock(boolean flag)
  7.         {
  8.                 this.flag = flag;
  9.         }
  10.        
  11.         @Override
  12.         public void run()
  13.         {
  14.                 if(flag)
  15.                 {
  16.                         while(true)
  17.                         {
  18.                                 synchronized (DeadlockT.locka)
  19.                                 {
  20.                                         System.out.println("if locha");
  21.                                         synchronized (DeadlockT.lockb)
  22.                                         {
  23.                                                 System.out.println("if lockb");
  24.                                         }                                       
  25.                                 }                               
  26.                         }
  27.                        
  28.                 }else
  29.                 {
  30.                         while(true)
  31.                         {
  32.                                 synchronized (DeadlockT.lockb)
  33.                                 {
  34.                                         System.out.println("else lockb");
  35.                                         synchronized (DeadlockT.locka)
  36.                                         {
  37.                                                 System.out.println("else locka");
  38.                                         }
  39.                                        
  40.                                 }
  41.                         }
  42.                                                        
  43.                 }                               
  44.         }       
  45. }

  46. class DeadlockT
  47. {
  48.         static Object locka = new Object();
  49.         static Object lockb = new Object();
  50. }

  51. class DeadlockTest
  52. {
  53.         public static void main(String[] args)
  54.         {
  55.                 Thread t1 = new Thread(new Deadlock(true));
  56.                 Thread t2 = new Thread(new Deadlock(false));
  57.                 t1.start();
  58.                 t2.start();
  59.         }       
  60. }
复制代码





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