黑马程序员技术交流社区

标题: 分享面试自用的死锁程序。 [打印本页]

作者: halohoop    时间: 2015-7-30 21:54
标题: 分享面试自用的死锁程序。
本帖最后由 halohoop 于 2015-7-30 21:55 编辑

面试题:请写一则死锁程序。
意在考察你对死锁情况的理解;


作者: 曾云鹏    时间: 2015-7-30 22:11
路过看看刚学完这章
作者: DD_vincent    时间: 2015-7-30 22:24
这不是线程里头的内容么
作者: Vampire..    时间: 2015-7-30 22:27
黑马的面试题吗?

作者: 林海东    时间: 2015-7-30 22:28
这要求我喜欢
作者: 392225327    时间: 2015-7-30 22:46
学习一下
作者: 小小豪    时间: 2015-7-30 23:14
死锁不错。
作者: 加瓦安柱    时间: 2015-7-30 23:14
。。。
作者: CharnLau    时间: 2015-7-30 23:19
死锁,照搬毕姥爷的就好了!
作者: IT老鹰    时间: 2015-7-30 23:20
如果照搬毕姥爷的,行么?
作者: 为了理想而奋斗    时间: 2015-7-30 23:35
。。倒是死背了一套死锁
作者: 嘉嘉    时间: 2015-7-31 00:16
为什么对我加锁?(ノ=Д=)ノ┻━
作者: T-l-H、小生    时间: 2015-7-31 00:25
呀呀呀,这个你也锁住。。。
作者: wayonEmes    时间: 2015-7-31 00:35
表示路过来学习一下下
作者: 360638403    时间: 2015-7-31 00:41
halohoop 发表于 2015-7-30 21:54
面试题:请写一则死锁程序。
意在考察你对死锁情况的理解;

**** 本内容被作者隐藏 **** ...

先回复。。。看看先
作者: icichacici    时间: 2015-7-31 06:49
我要看看,死锁程序。
作者: 人傻嘴笨脑残    时间: 2015-7-31 07:56
感谢分享                           
作者: shero    时间: 2015-7-31 08:17
跟楼主学习学习。。
作者: 马北剑西    时间: 2015-7-31 08:45
看看                 
作者: 李峥    时间: 2015-7-31 08:56
看一下~~
作者: 小丑    时间: 2015-7-31 13:50
  1. package com.hkddy8.test;

  2. /*
  3. * 需求:写一个死锁案例。
  4. */
  5. public class Test1 {
  6.         public static void main(String[] args) {
  7.                 MyThread m1 = new MyThread(true);
  8.                 MyThread m2 = new MyThread(false);

  9.                 Thread t1 = new Thread(m1);
  10.                 Thread t2 = new Thread(m2);

  11.                 t1.start();
  12.                 t2.start();

  13.         }
  14. }

  15. class MyThread extends Thread {
  16.         private boolean flag;

  17.         public MyThread(boolean flag) {
  18.                 this.flag = flag;
  19.         }

  20.         public void run() {
  21.                 if (flag) {
  22.                         while (true) {
  23.                                 synchronized (MyLock.objA) {
  24.                                         System.out.println("if objA");
  25.                                         synchronized (MyLock.objB) {
  26.                                                 System.out.println("if ojbB");
  27.                                         }
  28.                                 }
  29.                         }
  30.                 } else {
  31.                         while (true) {
  32.                                 synchronized (MyLock.objB) {
  33.                                         System.out.println("else objB");
  34.                                         synchronized (MyLock.objA) {
  35.                                                 System.out.println("else objA");
  36.                                         }
  37.                                 }
  38.                         }
  39.                 }
  40.         }
  41. }

  42. class MyLock {
  43.         public static final Object objA = new Object();
  44.         public static final Object objB = new Object();
  45. }
复制代码

作者: eayonh    时间: 2015-7-31 21:54
看看……
作者: iamzhp    时间: 2015-8-1 11:21
学习一下 明天面试
作者: 大鹏37    时间: 2015-8-1 12:35
哈哈看看
作者: gaoming971366    时间: 2015-8-1 12:39
。。。不会,可以指点一下吗
作者: 小王在黑马    时间: 2015-8-1 12:47
死锁一般就是同步里面还有同步吧!
作者: zk338142    时间: 2015-8-1 13:11
学习了,好东西
作者: bgxpf    时间: 2015-8-1 13:13
哎,看那些面试题什么都不会呢,好伤心,不知道谁有面试题集合
作者: ColdMoon    时间: 2015-8-1 13:51
看下,以免遇到
作者: morning_    时间: 2015-8-2 01:40
刚刚学完这个。。
作者: 15225159271    时间: 2015-8-2 06:18
楼主厉害啊,都已经参加面试了,现在通知录取了没
作者: 洋葱头头    时间: 2015-8-2 08:11
看看死锁{:3_47:}{:3_47:}
作者: javaking    时间: 2015-8-2 11:36
看一下·
作者: NicMe    时间: 2015-8-2 13:35
感谢分享
作者: 亚瑟王的神剑    时间: 2015-8-2 13:38
来学习学习
作者: 孙晓磊    时间: 2015-8-2 13:39
看看         
作者: zhangle_1225    时间: 2015-8-2 14:45
这是黑马的面试题目  想看看
作者: 呆呆怪兽    时间: 2015-8-2 15:00
我来瞅瞅
作者: 仨儿先森    时间: 2015-8-2 15:20
感谢分享、、、
作者: 疯狂的大猫    时间: 2015-8-2 19:53
回复一下才能看,好调我胃口
作者: 时光游戏    时间: 2015-8-2 20:39
路过,来学习一下
作者: cktree    时间: 2015-8-3 00:04
瞅瞅!学习学习!
作者: wx_HWRW5aF7    时间: 2015-8-3 00:55
别光说不练啊  
作者: hxxyny123    时间: 2015-8-3 01:14
面试范围好像很广啊
作者: 18734903493    时间: 2015-8-3 02:06
看一看吧!
作者: lsyz0021    时间: 2015-8-3 04:45
我想看看
作者: 海阔天空¥    时间: 2015-8-3 04:46
看上一看学学
作者: AllenIverson    时间: 2015-8-14 00:22
谢谢分享
作者: yantao0401    时间: 2015-8-14 10:44
  看看
作者: liuch111    时间: 2015-8-14 10:45
社招?                        
作者: kingxiao    时间: 2015-8-14 11:09
谢谢分享
作者: lingxia125    时间: 2015-8-14 14:54
这个不错         
作者: 虾米吃螃蟹    时间: 2015-8-14 15:06
回复看看~
作者: wh121    时间: 2015-8-15 21:37
好奇面试题 看看
作者: a2029460    时间: 2015-8-15 22:35
dfasfasfasfsafaf
作者: houweicheng    时间: 2015-8-15 22:42
路过看看,准备面试
作者: wygsqsj    时间: 2015-8-15 22:49
我正在看
作者: CharnLau    时间: 2015-8-16 01:03
收藏了!
作者: wang949055945    时间: 2015-8-16 01:39
我去  这个得看一下
作者: fengjietian    时间: 2015-8-16 07:51
看看是什么,这是我自己写的
  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. }
复制代码

作者: icichacici    时间: 2015-8-16 07:57
学习了。
作者: cc3441251    时间: 2015-8-16 08:12
先回复看看都忘记了
作者: 放学后来我家    时间: 2015-8-16 08:26
是毕业面试吗?
作者: 疯疯疯疯疯子    时间: 2015-8-16 08:49
顶啊,看内容
作者: kevin986745zk    时间: 2015-8-16 09:03
66666666666
作者: Demon浣熊    时间: 2015-8-16 09:28
?????????瞅瞅
作者: 唯爱丶    时间: 2015-8-16 09:32
死锁???什么东西啊
作者: Glc90    时间: 2015-8-16 09:48
谢谢分享
作者: 王艳静    时间: 2015-8-16 10:27
学习下{:2_34:}
作者: Z·H    时间: 2015-8-16 11:07
看一下~~
作者: wyd1    时间: 2015-8-16 11:14
这个视频里面有啊
作者: wyd1    时间: 2015-8-16 11:15
这个视频里面有啊
作者: sven556677    时间: 2015-8-16 11:23
学习学习

作者: 黑进制    时间: 2015-8-16 11:31
什么是死锁
作者: Y1011    时间: 2015-8-16 11:50
回复可见
作者: pengbeilin    时间: 2015-8-16 12:14
回复了才能看!
作者: yongyinqi    时间: 2015-8-16 17:40
看看和我的区别在哪
作者: muffin    时间: 2015-8-16 17:51
正在学习这里
作者: linqiwang    时间: 2015-8-16 18:03
谢谢分享
作者: vipsong    时间: 2015-8-16 21:01
回复看看是不是
作者: wcf    时间: 2017-9-11 20:45
学习,学习学习学习,




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