- public class TestDeadLock implements Runnable {
- Object o1 =new Object();
- Object o2 =new Object();
- public int flag =1;
- @Override
- public void run() {
- System.out.print("flag="+flag);
-
- if(flag==1){
- synchronized (o1) {
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- synchronized (o2) {
- System.out.println("1");
- }
- }
- }
-
- if(flag==0){
- synchronized (o2) {
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
-
- e.printStackTrace();
- }
- synchronized (o1) {
- System.out.println("0");
- }
- }
- }
- }
- public static void main(String[] args){
- TestDeadLock td1 =new TestDeadLock();
- TestDeadLock td2 =new TestDeadLock();
- td1.flag=1;
- td2.flag=0;
- Thread t1 =new Thread(td1);
- Thread t2 =new Thread(td2);
- t1.start();
- t2.start();
- }
- }
复制代码 |