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
进入死锁状态,进入无限等待中。
分享到:
相关推荐
CreateThread创建多线程,线程与主界通信采用消息
DEMO程序必须重新编译运行才能修正原资源死锁问题 取自卢伟的专栏DELPHI 线程池代码(http://blog.csdn.net/babyvspp/archive/2008/01/01/2008234.aspx),封装的十分完美,用法也非常简单,可以根据使用者设定的...
实测有效的一个c++检测线程死锁的解决方法(实现和测试代码) 原创实测有效的一个c++检测线程死锁的解决方法,已应用...友情链接:linux版的demo下载地址:https://download.csdn.net/download/guolinnanjing/10893897
这些java的代码demo,是本人几篇多线程文章的实例代码 http://www.cnblogs.com/yaoxiaowen/p/6576779.html
mina客户端,服务器端的demo
同步 互斥 死锁
zookeeperDemo zookeeper节点操作 zookeeper节点操作 节点创建,删除,遍历 节点数据读写 节点类型 节点类型 持久节点 PERSISTENT 持久顺序节点 PERSISTENT_SEQUENTIAL 临时节点 EPHEMERAL 临时顺序节点 EPHEMERAL_...
jvm调优里面用到的代码,有死锁,有查看字节码的,还有btrace 用到的代码。
2.锁和定时器的用法工程(包含死锁,定时器用法)。 3.自定义按钮工程。 4.图片资源编辑工程。 5.网络状态检查工程。 6.系统操作相关工程(包含一些按钮的点击统计,运行时状态记录)。 7.还有一个融租的项目采用了...
16、Thread【实现方式、异步调用、join、synchronized、wait、notifyAll,死锁、同步互斥、通信、ThreadLocal、消费者与生产者模式】 17、POI 18、JVM简单实例【Heap溢出、Stack溢出】 19、Redis的简单实例 20、java...
:four_o’clock: 演示版该演示显示:启动->无限循环-> LDAP注入-> UnsatisfiedLinkError-> BufferOverflowException->死锁->内存泄漏-> JVM崩溃(关闭) :four_o’clock: EasyBuggy可以复制: 烦恼内存泄漏(Java堆...
游戏是用Javascript编写的,用于客户端,使用Python... 但是,会出现死锁,竞争状况等新问题。 非阻塞事件驱动您只能在一个单线程的单循环中执行操作。 有了这个,您不必面对死锁,比赛条件等问题。 但是,仍然没有
资源中有demo和源码,基于RWLock类的改进版,原本读写锁在高频率读数据的时候会导致写线程抢占不到而死锁;本人对此做了改进,修正了锁阀门,经过测试可以放心使用了。 开发环境vs2003以上均可。
优惠记录申请Java开发工程师的学习资料演示死锁螺纹池不安全集合类volatile特性线程安全单例模式CAS应用ABA问题信号倒数计时循环屏障阿里巴巴java开发手册阿里官方发布1000道互联网大厂Java工程师面试题源码学院发布...
Event Sourcing And CQRS Event Sourcing 、CQRS 简述 Event Sourcing 简单来说就是记录对象的每个事件而不是记录对象的...都是以事件形式进行写入操作,理论上在高并发的情况下,没有死锁,性能会快很多; 可以基于
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 ...
System.out.println("A Demo object has been created"); } protected void addOne() { count++; } } 有关类Demo,描述正确的是:(选择1项) A) 当创建一个Demo类的实例对象时,count的值为0。 B) 当创建一...
CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的...
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...