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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 追逐 高级黑马   /  2014-3-18 16:30  /  942 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 追逐 于 2014-3-21 19:35 编辑

/*
写一个死锁
        也就是同步嵌套同步
*/
  1. class SiSuo implements Runnable {
  2.         
  3.         //定义一个标签
  4.         private boolean b;
  5.         SiSuo(boolean b) {
  6.                 this.b = b;
  7.         }
  8.         public void run() {
  9.                 if(b == true) {
  10.                         while(true) {
  11.                                 synchronized(Suo.obj1) {
  12.                                         System.out.println("if suoOne");
  13.                                         synchronized(Suo.obj2) {
  14.                                                 System.out.println("if suoTwo");
  15.                                         }
  16.                                 }
  17.                         }
  18.                 } else {
  19.                         while(true) {
  20.                                 synchronized(Suo.obj2) {
  21.                                         System.out.println("else suoTwo");
  22.                                         synchronized(Suo.obj1) {
  23.                                                 System.out.println("else suoOne");
  24.                                         }
  25.                                 }
  26.                         }
  27.                 }
  28.         }
  29.         
  30. }

  31. //写一个锁类
  32. class Suo {
  33.         static Object obj1 = new Object();
  34.         static Object obj2 = new Object();
  35. }

  36. class SiSuoTest {
  37.         public static void main(String[] args) {
  38.                 Thread t1 = new Thread(new SiSuo(true)); //创建两个线程
  39.                 Thread t2 = new Thread(new SiSuo(false));
  40.                 t1.start(); //开启线程
  41.                 t2.start();
  42.         }
  43. }
复制代码


0 个回复

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