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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qihuan 中级黑马   /  2015-7-6 21:13  /  333 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码


0 个回复

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