您的位置:首页 > 编程语言 > Java开发

马士兵视频笔试题:用一个程序模拟死锁的问题

2016-09-04 11:19 393 查看

笔试题目:请用一个程序模拟死锁的问题

public class TestDeadLock implements Runnable {
public int flag = 1;
static Object object1 = new Object();
static Object object2 = new Object();

public void run() {
System.out.println("flag = " + flag);
if (flag == 1) {
synchronized (object1) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
if (flag == 0) {
synchronized (object2) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

public static void main(String[] args) {
TestDeadLock td1 = new TestDeadLock();
TestDeadLock td2 = new TestDeadLock();
td1.flag = 1;
td2.flag = 0;

Thread thread1 = new Thread(td1);
Thread thread2 = new Thread(td2);
thread1.start();
thread2.start();
}
}


最后的执行结果:flag = 1;flag = 0;

两个程序都在等待资源,造成死锁的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息