黑马程序员技术交流社区
标题:
死锁问题匿名实现更简单
[打印本页]
作者:
纸牌屋
时间:
2016-7-26 23:34
标题:
死锁问题匿名实现更简单
package com.itheima;
public class DeadThread {
private static String s = "筷子左";
private static String s1 = "筷子右";
public static void main(String[] args) {
// TODO Auto-generated method stub
new Thread(new Runnable(){
public void run(){
while(true){
synchronized(s){
System.out.println("已经拿到筷子左,等待筷子右");
synchronized(s1){
System.out.println("已经拿到筷子右,开吃");
}
}
}
}
}).start();
new Thread(){
public void run(){
while(true){
synchronized(s1){
System.out.println("已经拿到筷子右,等待筷子左");
synchronized(s){
System.out.println("已经拿到筷子左,开吃");
}
}
}
}
}.start();
}
}
死锁算是金典了,面试的时候手写代码可能会用到,死锁问题直白来说就是两个人去饭店吃饭,只有一双筷子,结果一人各拿到了一只,互相都想要对方的筷子这样就导致无法吃饭,对应到java中就会产生程序卡死的情况,以上的死锁案例是用匿名对象完成的,使用了两种方法,第一个线程的用的是实现Runnable接口完成的,第二个线程使用继承Thread类完成的。匿名方式虽然看起来复杂,但习惯之后会发现写起来其实很方便。
作者:
qetu001212
时间:
2016-7-26 23:38
腻害,对匿名内部类的理解这么深入!
作者:
胡诗亮66
时间:
2016-7-26 23:46
学习面向对象的时候,匿名这个东西是我的硬伤,来研究研究
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2