黑马程序员技术交流社区

标题: 死锁的问题 [打印本页]

作者: 穆帆    时间: 2015-9-26 21:02
标题: 死锁的问题
  1. package cn.itcast.demo02_死锁的问题;

  2. public class MyThread2 extends Thread{
  3.         private MyClass1 c1;
  4.         private MyClass2 c2;
  5.         public MyThread2(MyClass1 c1 , MyClass2 c2){
  6.                 this.c1 = c1;
  7.                 this.c2 = c2;
  8.         }
  9.         public void run() {
  10.                 synchronized (c2) {
  11.                         System.out.println("t2锁住c2......");
  12.                         try {
  13.                                 Thread.sleep(1000);
  14.                         } catch (InterruptedException e) {
  15.                                 e.printStackTrace();
  16.                         }
  17.                         System.out.println("t2即将访问show1()......");
  18.                         c1.show1();
  19.                        
  20.                 }
  21.                 System.out.println("t2释放了c2的锁......");
  22.         }
  23. }package cn.itcast.demo02_死锁的问题;

  24. public class MyThread1 extends Thread {
  25.         private MyClass1 c1;
  26.         private MyClass2 c2;
  27.         public MyThread1(MyClass1 c1 , MyClass2 c2){
  28.                 this.c1 = c1;
  29.                 this.c2 = c2;
  30.         }
  31.        
  32.         @Override
  33.         public void run() {
  34.                 synchronized (c1) {
  35.                         System.out.println("t1锁住c1......");
  36.                         try {
  37.                                 Thread.sleep(1000);
  38.                         } catch (InterruptedException e) {
  39.                                 e.printStackTrace();
  40.                         }
  41.                         System.out.println("t1即将访问show2()......");
  42.                         c2.show2();
  43.                        
  44.                 }
  45.                 System.out.println("t1释放了c1的锁......");
  46.         }
  47. }
  48. package cn.itcast.demo02_死锁的问题;

  49. public class MyClass2 {
  50.         public synchronized void show2(){
  51.                 System.out.println("show2()");
  52.         }
  53. }
  54. package cn.itcast.demo02_死锁的问题;

  55. public class MyClass1 {
  56.         public synchronized void show1(){
  57.                 System.out.println("show1()");
  58.         }
  59. }
  60. package cn.itcast.demo02_死锁的问题;

  61. public class Demo {
  62.         public static void main(String[] args) {
  63.                 MyClass1 c1 = new MyClass1();
  64.                 MyClass2 c2 = new MyClass2();
  65.                
  66.                 MyThread1 t1 = new MyThread1(c1,c2);
  67.                 MyThread2 t2 = new MyThread2(c1,c2);
  68.                
  69.                 t1.start();
  70.                 t2.start();
  71.                
  72.         }
  73. }
复制代码

作者: zzy张    时间: 2015-9-26 23:37
感谢分享
作者: zzq18217362451    时间: 2015-9-26 23:54
厉害啊!
作者: a8336675    时间: 2015-9-27 00:13
学习学习
作者: 大头爱傻瓜    时间: 2015-9-27 00:13
来看看{:2_30:}




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