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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© halohoop   /  2015-7-30 21:54  /  6197 人查看  /  80 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

看看是什么,这是我自己写的
  1. import java.util.concurrent.locks.*;

  2. public class DeadLockTest {

  3.         public static void main(String[] args) {
  4.                 Lock locka = new ReentrantLock();
  5.                 Lock lockb = new ReentrantLock();

  6.                 DeadLock1 lock1 = new DeadLock1(locka, lockb);
  7.                 DeadLock2 lock2 = new DeadLock2(locka, lockb);

  8.                 new Thread(lock1).start();
  9.                 new Thread(lock2).start();

  10.         }

  11. }

  12. class DeadLock1 implements Runnable {

  13.         Lock locka;
  14.         Lock lockb;

  15.         public DeadLock1(Lock a, Lock b) {
  16.                 locka = a;
  17.                 lockb = b;
  18.         }

  19.         @Override
  20.         public void run() {
  21.                 locka.lock();
  22.                 try {
  23.                         System.out.println(Thread.currentThread().getName() + ":" + "获得locka");
  24.                         Thread.sleep(1000);
  25.                         lockb.lock();
  26.                         System.out.println(Thread.currentThread().getName() + ":" + "获得lockb");

  27.                 } catch (InterruptedException e) {
  28.                         e.printStackTrace();
  29.                 } finally {
  30.                         lockb.unlock();
  31.                         locka.lock();
  32.                 }

  33.         }

  34. }

  35. class DeadLock2 implements Runnable {

  36.         Lock locka;
  37.         Lock lockb;

  38.         public DeadLock2(Lock a, Lock b) {
  39.                 locka = a;
  40.                 lockb = b;
  41.         }

  42.         @Override
  43.         public void run() {
  44.                 lockb.lock();
  45.                 try {
  46.                         System.out.println(Thread.currentThread().getName() + ":" + "获得lockb");
  47.                         Thread.sleep(1000);
  48.                         locka.lock();
  49.                         System.out.println(Thread.currentThread().getName() + ":" + "获得locka");

  50.                 } catch (InterruptedException e) {
  51.                         e.printStackTrace();
  52.                 } finally {
  53.                         locka.unlock();
  54.                         lockb.lock();
  55.                 }

  56.         }

  57. }
复制代码
回复 使用道具 举报
学习了。
回复 使用道具 举报
cc3441251 来自手机 中级黑马 2015-8-16 08:12:08
63#
先回复看看都忘记了
回复 使用道具 举报
是毕业面试吗?
回复 使用道具 举报
顶啊,看内容
回复 使用道具 举报
66666666666
回复 使用道具 举报
?????????瞅瞅
回复 使用道具 举报
死锁???什么东西啊
回复 使用道具 举报
Glc90 中级黑马 2015-8-16 09:48:07
69#
谢谢分享
回复 使用道具 举报
学习下{:2_34:}
回复 使用道具 举报
Z·H 中级黑马 2015-8-16 11:07:11
71#
看一下~~
回复 使用道具 举报
wyd1 中级黑马 2015-8-16 11:14:07
72#
这个视频里面有啊
回复 使用道具 举报
wyd1 中级黑马 2015-8-16 11:15:57
73#
这个视频里面有啊
回复 使用道具 举报
学习学习
回复 使用道具 举报
什么是死锁
回复 使用道具 举报
Y1011 中级黑马 2015-8-16 11:50:25
76#
回复可见
回复 使用道具 举报
回复了才能看!
回复 使用道具 举报
看看和我的区别在哪
回复 使用道具 举报
正在学习这里
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马