package com.simon.study;
/**
* 线程死锁 一个线程要同时拥有两个对象的资源才能进行下一步操作;
* @author: Simon
* @date: 2017年7月29日 下午9:48:43
*/
public class DeadLock implements Runnable{
static Object o1=
new Object(),o2=
new Object();
public int flag=
1;
public void run() {
// TODO Auto-generated method stub
System.
out.println(
"flag***********"+
flag);
if(flag==
1){
synchronized (o1) {
try {
Thread.sleep(500);
} catch (Exception e) {
// TODO: handle exception
}
synchronized (o2) {
System.out.println(
"这里线程1获取所有的线程权限");
}
}
}
if(flag==
0){
synchronized (o2) {
try {
Thread.sleep(500);
} catch (Exception e) {
// TODO: handle exception
}
synchronized (o1) {
System.out.println(
"这里线程2获取所有的线程权限");
}
}
}
}
public static void main(String[] args){
DeadLock deadLock1=
new DeadLock();
DeadLock deadLock2=
new DeadLock();
deadLock1.flag=
1;
deadLock2.flag=
0;
Thread r1=
new Thread(deadLock1);
Thread r2=
new Thread(deadLock2);
r1.start();
r2.start();
}
}
转载请注明原文地址: https://www.6miu.com/read-79198.html