public class DeadLock {public static Object Chopstick_1 = new Object();public static Object Chopstick_2 = new Object();public static void main(String[] args) {final DeadLock deadLock = new DeadLock();// 第一个线程  new Thread(new Runnable() {public void run() {try {synchronized (Chopstick_1) {System.out.println("甲得到筷子1");Thread.sleep(1000); // 当前线程睡一会,让另外一个线程保证能得到Chopstick_2的执行权  synchronized (Chopstick_2) {System.out.println("甲得到筷子2");}}} catch (InterruptedException e) {throw new RuntimeException(e);}}}).start();// 第二个线程  new Thread(new Runnable() {public void run() {try {synchronized (Chopstick_2) {System.out.println("乙得到筷子2");Thread.sleep(1000); // 当前线程睡一会,让另外一个线程保证能得到Chopstick_1的执行权  synchronized (Chopstick_1) {System.out.println("乙得到筷子1");}}} catch (InterruptedException e) {throw new RuntimeException(e);}}}).start();}
}

面试题——死锁的实现相关推荐

  1. ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序

    我们在计算机操作系统这门专业课上,学过死锁(Deadlock)的概念:两个或两个以上的进程(或线程)在执行过程中,由于竞争资源而造成的一种阻塞的现象,称为死锁.若无外力干预,这些处于死锁状态的进程将永 ...

  2. java基础 day14数据安全,银行账户取款例子,synchronized()使用、面试题,死锁,线程安全

    数据安全 关于多线程并发环境下,数据的安全问题 为什么这个是重点?以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了.这些代码我们都不 ...

  3. 高薪程序员面试题精讲系列72之死锁产生的原因及解决办法,如何定位死锁产生的位置?

    一. 面试题及剖析 1. 今日面试题 如何保证线程的安全? 如何保证线程的有序性? 线程死锁是怎么产生的? 如何解决线程死锁? 如果生产环境的项目产生了死锁如何定位? 2. 题目剖析 在前两篇文章中, ...

  4. 阿里面试题:如何检测并避免 Java 中的死锁?

    作者:Yujiaao 来源:https://segmentfault.com/a/1190000019962661 经典但核心Java面试问题之一. 如果你没有参与过多线程并发 Java 应用程序的编 ...

  5. java的死锁是什么意思_Java面试题:什么是死锁?如何手写一个死锁(Dead Lock)...

    要想实现一个死锁,首先要明白什么是死锁,我们看一下死锁的定义: 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去.此时称 ...

  6. 编程面试题:编写一个会造成数据库死锁的应用

    相信对于"开发一个会产生死锁的Java应用"这类需求,大家都能顺利完成.但是如果题目要求得更具体一些,要求这个死锁发生在数据库层面,应该怎样完成呢? 下面我提供一种答案,采用SAP ...

  7. 笔试题 遗忘点记录 面向对象特点 + 产生死锁条件+ windows内存管理方法

    )单一职责原则.就一个类而言,应该仅有一个引起它变化的原因.                    //感觉这个是 低耦合 高内聚 (2)开放封闭原则.软件实体对外扩展开放,对修改封闭.        ...

  8. 2019最新拼多多Java面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀

    拼多多Java一面 简短自我介绍 事务的ACID,其中把事务的隔离性详细解释一遍 脏读.幻影读.不可重复读 红黑树.二叉树的算法 平常用到哪些集合类?ArrayList和LinkedList区别?Ha ...

  9. 什么是线程死锁?如何解决?(蚂蚁金服面试题)

    认识线程死锁 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不可能正常终止. 如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想 ...

最新文章

  1. CSS grid 的用法
  2. 盘点开发中那些常用的MySQL优化
  3. 为什么mysql打开闪屏_mysql登录闪屏问题解决办法
  4. cookie放在请求头_Web安全:你必须知道的“Cookie安全”
  5. java数组中相同的元素个数_java求两个数组中相同元素出现的次数
  6. oracle 增量设为3 循环_Oracle 差异性增量 和 累计增量 原理(转)
  7. WebBrowser控件使用相关
  8. (转)Spring Boot(四):Thymeleaf 使用详解
  9. Ubuntu进入pycharm创建的虚拟环境的方法(以及如果你安装了anaconda等其它修改了环境变量的东西该怎么进)
  10. 网络蚂蚁背后的故事(转)
  11. 欧瑞变频器800参数设置_(完整版)ACS800变频器参数设定
  12. 小波变换去噪python_小波去噪方法及步骤_小波去噪方法的比较
  13. java如何对一个表达式开根号_java实现开根号的运算
  14. 百度EasyDL图像分类的使用
  15. ajax authorization,ajax跨域,_ajax Authorization 鉴权失败,ajax跨域 - phpStudy
  16. WEB财务报表设计器的实现
  17. linux tcp 异常断开连接,TCP 异常断开
  18. AI生成新春祝福海报,AIGC从“炫技”走向日常
  19. 什么是百度SEO?百度SEO优化怎么做?
  20. Hive-beeline启动脚本

热门文章

  1. WinCE6.0 修改开机Logo方法
  2. 微型计算机键盘上的西服的间称为,一台完整的微型计算机主要由主机箱. .键盘.鼠标及音箱.打印机组成....
  3. python归一化 增大差异_Python逻辑回归模型原理及实际案例应用
  4. bert pytorch 序列标注_序列标注:Bi-LSTM + CRF
  5. python tkinter listbox_Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中
  6. list取数据_Day.5利用Pandas做数据处理(二)
  7. 【转】vs平台工具集介绍,vc6~vs2019各IDE对应的工具集版本
  8. 【转】Windows编程之滚动条—滚动条消息
  9. 【转】3.6(译)构建Async同步基元,Part 6 AsyncLock
  10. 一步步编写操作系统 24 编写内核加载器