黑马程序员技术交流社区

标题: 死锁 [打印本页]

作者: 冯大卫    时间: 2014-9-2 00:42
标题: 死锁

  1. public class DeadLock implements Runnable {
  2.         Object locka=new Object();
  3.         Object lockb=new Object();
  4.         @Override
  5.         public void run() {
  6.         while(true){
  7.                 synchronized (locka) {
  8.                         System.out.println("11locka");
  9.                         synchronized (lockb) {
  10.                                 System.out.println("11lockb");
  11.                         }
  12.                 }
  13.                 synchronized (lockb) {
  14.                 System.out.println("22lockb");
  15.                 synchronized (locka) {
  16.                         System.out.println("22locka");
  17.                 }
  18.                 }
  19.         }

  20.         }
  21. }

  22. public class Test {

  23.         public static void main(String[] args) {
  24.                 DeadLock dk=new DeadLock();
  25.                 Thread t1=new Thread(dk,"aa");
  26.                 Thread t2=new Thread(dk,"bb");
  27.                 t1.start();
  28.                 t2.start();        
  29.         }
  30. }
  31. 这样也可以死锁,但是在while里面线程为什么可以直接去走第二个锁
复制代码





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