java 死锁

原创 2015年11月19日 16:30:22

package test;
class DeadLock implements Runnable {

public boolean flag = true;

static Object o1 = new Object(), o2 = new Object();

@Override
public void run() {

    System.out.println(Thread.currentThread());
    System.out.println("flag = " + flag);

    if(flag) {
        System.out.println("&&&&&&&&&&&&&&&&&");
        synchronized(o1) {

            try 
            {
                System.out.println("sleep1");
                Thread.sleep(500);
            } 
            catch (Exception e)
            {
                e.printStackTrace();
            }

            System.out.println("-----下面的没有执行到------");

            //下面的没有执行到
            synchronized(o2) {
                System.out.println("1");
            }

            System.out.println("<<<<<<<<<<<<<");
        }
    }
    else {
        System.out.println("^^^^^^^^^^^^^^^^^^^^^");
        synchronized(o2) 
        {

            try {
                System.out.println("sleep2");
                Thread.sleep(500);
            } 
            catch (Exception e) {
                e.printStackTrace();
            }

            System.out.println("+++++下面的没有执行到++++++");

// 下面的没有执行到
synchronized(o1) {
System.out.println(“0”);
}
System.out.println(“>>>>>>>>>>>>”);
}
}
}

public static void main(String[] args) {
    DeadLock td1 = new DeadLock();
    DeadLock td2 = new DeadLock();

    td1.flag = true;
    td2.flag = false;

    new Thread(td1).start();
    new Thread(td2).start();
}

}

运行的结果是线程一直处于运行状态,但是被同步的两个代码块的
代码都没有执行.

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

不死锁的哲学家问题实现 java

  • 2014年01月21日 15:13
  • 1.83MB
  • 下载

java死锁问题

  • 2014年11月06日 22:20
  • 5KB
  • 下载

【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)

问题的引出     在第一章《基本套接字》中,作者给出了一个TCP Socket通信的例子——反馈服务器,即服务器端直接把从客户端接收到的数据原原本本地反馈回去,示例程序当然运行无误。      书上...

一个java线程池死锁的例子

  • 2016年05月30日 16:53
  • 2KB
  • 下载

线程_死锁_生产者消费者模式(信号灯法)_任务调度JAVA180-182

一、S02E180_01线程_死锁二、S02E181_01线程_生产者消费者模式(信号灯法)三、S02E182_01线程_任务调度...

Java线程的同步与死锁

  • 2014年09月14日 14:56
  • 168KB
  • 下载

JAVA死锁and生产者消费者问题

  • 2012年06月02日 07:27
  • 1KB
  • 下载

java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)

多线程系列教程: java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(一) java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(二) 本篇我...

JAVA_线程同步与死锁

  • 2012年08月16日 11:45
  • 32KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 死锁
举报原因:
原因补充:

(最多只允许输入30个字)