`

死锁demo

 
阅读更多
package com.jd.schdule;

/**
 * 死锁
 * @author yfzhangbin
 */
public class DeadlockTest {
	public static Object lock1 = new Object();
	public static Object lock2 = new Object();
	
	public static void deadlock() {
		new Thread(new Runnable() {	// 线程T1
			public void run() {
				synchronized(lock1) {
					System.out.println(1);
					try {
						Thread.sleep(1000);
					} catch(Exception e) {
						e.printStackTrace();
					}
					synchronized(lock2) {	// 线程T1持有锁lock1,并等待线程T2释放锁lock2
						System.out.println(2);
					}
				}
			}
		}).start();
	  
		new Thread(new Runnable() {	// 线程T2
			public void run() {
				synchronized (lock2) {
					System.out.println(3);
					synchronized (lock1) {	// 线程T2持有锁lock2,等待线程T1释放锁lock1
						System.out.println(4);
					}	
				}	
			}
		}).start();
	}

	public static void main(String[] a){
		deadlock();
	}
}

 输出:

1
3
进入死锁状态,进入无限等待中。

 

 

分享到:
评论
2 楼 javawangzilong 2013-05-15  
Thread.sleep(1000);为什么线程不睡眠了
1 楼 blgaici1 2012-06-20  
给力...

相关推荐

    Delphi多线程Demo

    CreateThread创建多线程,线程与主界通信采用消息

    uThreadPool.pas 线程池示例 DEMO 修正资源死锁

    DEMO程序必须重新编译运行才能修正原资源死锁问题 取自卢伟的专栏DELPHI 线程池代码(http://blog.csdn.net/babyvspp/archive/2008/01/01/2008234.aspx),封装的十分完美,用法也非常简单,可以根据使用者设定的...

    实测有效的一个c++检测线程死锁的解决方法(实现和测试代码)

    实测有效的一个c++检测线程死锁的解决方法(实现和测试代码) 原创实测有效的一个c++检测线程死锁的解决方法,已应用...友情链接:linux版的demo下载地址:https://download.csdn.net/download/guolinnanjing/10893897

    java多线程代码demo

    这些java的代码demo,是本人几篇多线程文章的实例代码 http://www.cnblogs.com/yaoxiaowen/p/6576779.html

    MINA断线重连死锁解决

    mina客户端,服务器端的demo

    java线程demo

    同步 互斥 死锁

    zookeeperDemo

    zookeeperDemo zookeeper节点操作 zookeeper节点操作 节点创建,删除,遍历 节点数据读写 节点类型 节点类型 持久节点 PERSISTENT 持久顺序节点 PERSISTENT_SEQUENTIAL 临时节点 EPHEMERAL 临时顺序节点 EPHEMERAL_...

    jvm-demo1.zip

    jvm调优里面用到的代码,有死锁,有查看字节码的,还有btrace 用到的代码。

    ObjectC的算法和项目demo源码下载

    2.锁和定时器的用法工程(包含死锁,定时器用法)。 3.自定义按钮工程。 4.图片资源编辑工程。 5.网络状态检查工程。 6.系统操作相关工程(包含一些按钮的点击统计,运行时状态记录)。 7.还有一个融租的项目采用了...

    DemoUtils:一些帮助类

    16、Thread【实现方式、异步调用、join、synchronized、wait、notifyAll,死锁、同步互斥、通信、ThreadLocal、消费者与生产者模式】 17、POI 18、JVM简单实例【Heap溢出、Stack溢出】 19、Redis的简单实例 20、java...

    SCW-Demo1

    :four_o’clock: 演示版该演示显示:启动->无限循环-> LDAP注入-> UnsatisfiedLinkError-> BufferOverflowException->死锁->内存泄漏-> JVM崩溃(关闭) :four_o’clock: EasyBuggy可以复制: 烦恼内存泄漏(Java堆...

    HTML5-realtime-multiplayer-demo:使用Javascript和Python进行HTML5实时多人演示

    游戏是用Javascript编写的,用于客户端,使用Python... 但是,会出现死锁,竞争状况等新问题。 非阻塞事件驱动您只能在一个单线程的单循环中执行操作。 有了这个,您不必面对死锁,比赛条件等问题。 但是,仍然没有

    读写锁 改进版

    资源中有demo和源码,基于RWLock类的改进版,原本读写锁在高频率读数据的时候会导致写线程抢占不到而死锁;本人对此做了改进,修正了锁阀门,经过测试可以放心使用了。 开发环境vs2003以上均可。

    Offers:java学习及找工作记录。包括java基础,并发,数据库,算法,网络,设计模式,spring等参考书籍,jdk1.8源码,demo,笔面试题记录及阿里巴巴java开发手册等

    优惠记录申请Java开发工程师的学习资料演示死锁螺纹池不安全集合类volatile特性线程安全单例模式CAS应用ABA问题信号倒数计时循环屏障阿里巴巴java开发手册阿里官方发布1000道互联网大厂Java工程师面试题源码学院发布...

    AxonDemo:使用Axon + Spring Cloud + Spring Cloud Stream + JPA实施事件源和CQRS

    Event Sourcing And CQRS Event Sourcing 、CQRS 简述 Event Sourcing 简单来说就是记录对象的每个事件而不是记录对象的...都是以事件形式进行写入操作,理论上在高并发的情况下,没有死锁,性能会快很多; 可以基于

    CSerialPort:Remon Spekreijse的串行端口类的最新修改版

    CSerialPorta lightweight library of serial port, which can easy to read and write serical port on windows with C++2021-01-13 the typical demo to use this class:First Version by Remon Spekreijse on ...

    java经典面试2010集锦100题(不看你后悔)

     System.out.println("A Demo object has been created"); } protected void addOne() { count++; } } 有关类Demo,描述正确的是:(选择1项) A) 当创建一个Demo类的实例对象时,count的值为0。 B) 当创建一...

    asp.net知识库

    CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

Global site tag (gtag.js) - Google Analytics