死锁的案例
来源:互联网 发布:win10网络凭证 编辑:程序博客网 时间:2024/06/03 10:01
当多线程处理共享数据时,就会涉及到线程安全问题,采用同步代码块或者同步方法,资源交错,操作不当会产生死锁问题!如下是一个死锁的案例,仅供参考
class BreadMilk implements Runnable {private String milk = "牛奶";// 保证有一份private String bread = "面包";boolean flag;// true,t1,执行,false,t2执行@Overridepublic void run() {if (flag) {// t1线程执行synchronized (milk) {System.out.println(Thread.currentThread().getName() + ",已经拥有了"+ milk);try {Thread.sleep(10);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}synchronized (bread) {System.out.println(Thread.currentThread().getName()+ ",即拥有" + milk + ",又拥有" + bread);}}} else {// t2线程执行synchronized (bread) {System.out.println(Thread.currentThread().getName() + ",已经拥有了"+ bread);try {Thread.sleep(10);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}synchronized (milk) {System.out.println(Thread.currentThread().getName()+ ",即拥有" + bread + ",又拥有" + milk);}}}}}public class DeadLock {public static void main(String[] args) {BreadMilk mt1 = new BreadMilk();BreadMilk mt2 = new BreadMilk();mt1.flag = true;mt2.flag = false;Thread t1 = new Thread(mt1, "张三");Thread t2 = new Thread(mt2, "李四");t1.start();t2.start();}}
0 0
- 死锁的案例
- 多线程中死锁的案例
- java中死锁的案例
- 死锁案例
- 案例:死锁引起的应用挂起
- java-写一个死锁的案例
- 简单多线程死锁案例
- Thread 产生死锁案例
- java死锁案例
- mysql 死锁案例
- java死锁案例
- Android 死锁解题案例
- 简单死锁案例
- 最简单的多线程死锁案例代码(Java语言)
- 一个由阻塞队列引发的类死锁案例
- java中线程的同步和死锁案例分析
- 我的Mysql死锁排查过程(案例分析)
- 经典死锁案例-哲学家就餐
- POJ 3421 X-factor-Chains
- 第六届蓝桥杯九数组分数
- 博客搭建(1)--使用github搭建个人博客
- 【笔记】Android6.0之后权限请求工具类
- 魔力手环-网易互联网2017在线笔试题目
- 死锁的案例
- 安卓数据存储-使用LitePal操作数据库
- 浅谈协方差矩阵
- 如何整理个人桌面?
- 题解:Continuous Subarray Sum
- C/C++经典程序训练3---模拟计算器
- Mac上MyEclipse创建java后台程序访问MySQL本地数据库
- 微信小程序 判断是否是手机号
- java.util.ListIterator<E>