黑马程序员技术交流社区

标题: Java基础学习日记 - 死锁 [打印本页]

作者: qihuan    时间: 2015-7-6 21:13
标题: Java基础学习日记 - 死锁
  1. package practice;

  2. /**
  3. * 死锁程序
  4. * @author Qihuan
  5. *
  6. */

  7. class DeadLock implements Runnable{
  8.         private boolean flag;

  9.         public DeadLock(boolean flag) {
  10.                 // TODO Auto-generated constructor stub
  11.                 this.flag = flag;
  12.         }

  13.         @Override
  14.         public void run() {
  15.                 // TODO Auto-generated method stub
  16.                 if (flag) {
  17.                         synchronized (MyLock.lockA) {
  18.                                 System.out.println("if lockA");
  19.                                 synchronized (MyLock.lockB) {
  20.                                         System.out.println("if lockB");
  21.                                 }
  22.                         }
  23.                 }else{
  24.                         synchronized (MyLock.lockB) {
  25.                                 System.out.println("else lockB");
  26.                                 synchronized (MyLock.lockA) {
  27.                                         System.out.println("else lockA");
  28.                                 }
  29.                         }
  30.                 }
  31.         }
  32. }

  33. class MyLock {
  34.         static Object lockA = new Object();
  35.         static Object lockB = new Object();
  36. }

  37. public class DeadLockTest {
  38.         public static void main(String[] args) {
  39.                 Thread t = new Thread(new DeadLock(true));
  40.                 Thread t2 = new Thread(new DeadLock(false));
  41.                 t.start();
  42.                 t2.start();
  43.         }
  44. }
复制代码







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