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

© fmi110 高级黑马   /  2015-10-5 23:11  /  377 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. package demo;

  2. public class DeadLockDemo {

  3.         public static void main(String[] args) {
  4.                 final M m = new M();
  5.                 new Thread(){
  6.                         public void run() {
  7.                                 while (true)
  8.                                         m.run();
  9.                         };
  10.                 }.start();
  11.                 new Thread() {
  12.                         public void run() {
  13.                                 while (true)
  14.                                         m.go();
  15.                         };
  16.                 }.start();

  17.         }

  18. }
  19. class M {
  20.         Object lock1 = new Object();
  21.         Object lock2 = new Object();
  22.         public void run(){
  23.                 synchronized(lock1){  //嵌套锁
  24.                         System.out.println("lock1 run()"+Thread.currentThread().getName());
  25.                         synchronized(lock2){
  26.                                 System.out.println("lock2 run()"+Thread.currentThread().getName());
  27.                         }
  28.                 }
  29.         }
  30.         public void go(){
  31.                 synchronized(lock2){
  32.                         System.out.println("go run()"+Thread.currentThread().getName());
  33.                         synchronized(lock1){
  34.                                 System.out.println("go run()"+Thread.currentThread().getName());
  35.                         }
  36.                 }
  37.         }
  38. }
复制代码
  1. lock1 run()Thread-0
  2. lock2 run()Thread-0
  3. lock1 run()Thread-0
  4. lock2 run()Thread-0
  5. lock1 run()Thread-0
  6. go run()Thread-1
复制代码



4 个回复

倒序浏览
正在学习这块   过来瞄一眼!
回复 使用道具 举报
秦时明月汉时关 来自手机 中级黑马 2015-10-6 09:40:47
藤椅
哈哈哈哈哈哈哈哈哈
回复 使用道具 举报
不错不错,很直观
回复 使用道具 举报
写的不错啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马