毕向东讲解(摘)—10.多线程(死锁)
来源:互联网 发布:快走丝hl编程忘了 编辑:程序博客网 时间:2024/05/16 16:13
关于死锁的问题:
死锁的本质就是同步中间嵌套同步,但是二者使用的锁不同,导致死锁。
死锁很神奇,请慢慢体会
package day6;
/**
* 死锁
*
* 关于死锁的问题:
* 程序中出现死锁的可能代码时,死锁不一定会发生;
* 但是出现死锁的程序中断和异常运行的可能性会大大的提升
* 我们在程序的运行中应该尽量的去避免死锁。
* (防止出现不同的锁的情况)
* @authormzy
*
*/
publicclassTest4{
publicstaticvoidmain(String[]args){
Lockl1=newLock(true);
Lockl2=newLock(false);
Threadt1=newThread(l1);
Threadt2=newThread(l2);
t1.start();
t2.start();
}
}
classLockimplements Runnable{
privatebooleanflag;
Lock(booleanflag){
this.flag=flag;
}
publicvoidrun(){
if(flag){
synchronized(MyLock.lock1){
System.out.println("if o1");
synchronized(MyLock.lock2){
System.out.println("if o2");
}
}
}else{
synchronized(MyLock.lock2){
System.out.println("else o2");
synchronized(MyLock.lock1){
System.out.println("else o1");
}
}
}
}
}
classMyLock{
staticObjectlock1=newObject();
staticObjectlock2=newObject();
}
- 毕向东讲解(摘)—10.多线程(死锁)
- 毕向东讲解(摘)—1.多线程概述
- 毕向东讲解(摘)—6.多线程安全问题(同步函数)
- 毕向东讲解(摘)—7.多线程安全问题(同步函数的锁this验证)
- 毕向东讲解(摘)—11.多线程线程间通信(示例代码)
- 毕向东讲解(摘)—5.多线程的安全问题(同步代码块)
- 多线程四,死锁产生的原因和死锁的例子(毕向东老师)
- 毕向东讲解(摘)—线程售票重复bug
- 毕向东讲解(摘)—8.静态同步函数
- 毕向东讲解(摘)—9.单例设计模式的回顾
- 多线程一(毕向东老师)
- 毕向东JAVA视频讲解笔记(前三课)
- 毕向东JAVA视频讲解(四五课)
- 毕向东JAVA视频讲解(第六课)
- 毕向东JAVA视频讲解(第七课)
- 毕向东JAVA视频视频讲解(第八课)
- 详解多线程(死锁)
- Java多线程(八)——死锁
- 串口发送32bit数据Verilog
- Git使用教程总结
- Springboot JavaMailSender发送邮件(QQ和163)
- 为什么未初始化的指针会指向一个不确定地址
- 面试记录第十六节——(UI卡顿的问题)
- 毕向东讲解(摘)—10.多线程(死锁)
- network的namespace中查询ip
- LeetCode 413
- Junit测试
- iOS一行shell脚本自动打包上传指定位置
- 如何从Red Hat官网下载镜像image:Atomic、OpenShift、Docker、Satellite、System Images runc
- maven打包生成可执行jar文件
- Batch Normalization
- git 本地项目上传