黑马程序员 多线程死锁的问题.
来源:互联网 发布:生成对抗网络 论文 编辑:程序博客网 时间:2024/05/21 18:32
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------...
/* * 多线程死锁的问题, * * 什么叫做死锁呢? * 我是这样理解的,就是打不开的锁,那么在程序中有打不开的锁的话,那么程序就 * 没有办法继续往下执行,可以在样更形象化的说一下就是好比我们去吃饭,那么我们 * 要吃饭,老板先要钱,我就要先吃饭,那么我们就在那争执到最后就不会有结果的 * * 那么在多线程中的死锁是怎么来体现的呢? * 就是两条线程用的不是同一把锁,你中有我我中有你. * * 死锁示例代码如下. *///这是一个测试用的类.public class ThreadDemo {public static void main(String[] args) {Thread t= new Thread(new Demo4(true));Thread t1= new Thread(new Demo4(false));t.start();t1.start();}}//这是先定义一个类,实现了Runnable接口 复写了其中的run 方法.class Demo4 implements Runnable{private boolean flag;Demo4(boolean flag){this.flag = flag;}public void run(){//这是做得一个标记.那么下面代码就实现了,锁中有锁的这样一个要求.if(flag){while(true){//下面就是两个同步代码块嵌套的方式.synchronized(Lock.obj1){//这是一个锁.System.out.println("if flag");synchronized(Lock.obj2){//这是另外一个锁System.out.println("if flag");}}}}else{while(true){//下面就是两个同步代码块嵌套的方式.synchronized(Lock.obj2){//这是一个锁System.out.println("else flag");synchronized(Lock.obj1){//这是另外一个锁.System.out.println("else flag");}}}}}}//为了更好的体现两个不同的锁在嵌套的时候会出现死锁的问题//这是先在外面定义好的两个不同的锁,两个不同的锁.为了用的方便加上了静态修饰.class Lock{static Object obj1 = new Object();static Object obj2 = new Object();}机器不同可能出现的效果不是一样的
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------...
0 0
- 黑马程序员 多线程死锁的问题.
- 黑马程序员:Java基础——多线程的死锁问题
- 黑马程序员-多线程死锁
- 黑马程序员_多线程死锁
- 黑马程序员_多线程(死锁)
- 黑马程序员----关于死锁的问题
- 黑马程序员———多线程和死锁问题总结
- 黑马程序员-JAVA基础-多线程的安全、同步与死锁
- 黑马程序员:多线程同步造成的死锁示例及理解
- [黑马程序员]多线程__蛋疼的死锁
- 黑马程序员_多线程的死锁和等待唤醒机制
- 黑马程序员_java多线程的同步和死锁
- 黑马程序员_多线程之死锁
- 黑马程序员——多线程5:死锁
- 黑马程序员_多线程与死锁
- 黑马程序员_多线程的死锁和多线程下的单例设计模式
- 黑马程序员---多线程的几个小问题
- 黑马程序员------多线程(No.2)(死锁、线程间通信、生产者消费者问题)
- Tree Diameter
- 相对路径和绝对路径的区别
- VC++GDI+绘制字体
- 金妍儿身价超过顶级艺人 笑言索契卫冕压力小
- Java读取txt格式文件打印到控制台
- 黑马程序员 多线程死锁的问题.
- oracle不能使用索引
- SVN与eclipse整合与使用、SVN与Apache整合
- javascript语法详解(六)----语句
- 适配器模式
- MySQL帮助-help功能:登陆mysql服务器所需的相关参数选项(5.5.27)
- 这个假日 博客起航
- MySQL帮助-help功能2:日常管理维护所需命令&show用法
- android 调用摄像头自动拍照 并上传到YEELINK