您的位置:首页 > 其它

死锁---同步

2016-04-17 23:43 344 查看
博主最近状态不佳,读者认真研究下下面的代码吧!很好理解的,祝大家都能成为一个牛逼的程序猿!

代码如下:

/**

* 造成死锁的前提是两个同步互相等待对方将锁打开,而这样恰恰造成了死循环,无法往下走(具体看代码,博主就不详解了)*/

public class DeadLock implements Runnable{

public String str="";//锁对象

static Object object1=new Object(),object2=new Object();

@Override

public void run() {

if(str.equals("one")){

System.out.println("等待对象1");

synchronized (object1) {

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

synchronized (object2) {

System.out.println("对象2(object2)有没有把锁打开???");

}

}

}

if(str.equals("two")){

System.out.println("等待对象2");

synchronized (object2) {

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

synchronized (object1) {

System.out.println("对象1(object1)有没有把锁打开???");

}

}

}

}

public static void main(String[] args) {

DeadLock deadLock1=new DeadLock();

DeadLock deadLock2=new DeadLock();

deadLock1.str="one";

deadLock2.str="two";

new Thread(deadLock1).start();

new Thread(deadLock2).start();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: