开发者社区> 问答> 正文

什么是死锁?

什么是死锁?

展开
收起
问问小秘 2020-01-03 14:02:34 711 0
来自:Java开发者
2 条回答
写回答
取消 提交回答
  • 死锁通常在程序的线程和数据库操作中的事务里谈到。两个线程或者事务,它们各自占据着一个数据,因为处理需要,又在彼此等待对方放手它们占有的数据,此时,循环等待,形成死锁。 大写字母A,B 表示线程或事务,小写字母表示数据 当前数据状态:A、B各自占有数据 a、b,即 A(a),B(b),此时因为 A 的逻辑需要处理数据 b,同时,B 的逻辑需要处理数据 a,而A、B各自都不放手自己占据的数据,形成死锁。

    2020-02-09 18:47:13
    赞同 展开评论 打赏
  • 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。是操作系统层面的一个错误,是进程死锁的简称,最早在 1965 年由 Dijkstra 在研究银行家算法时提出的,它是计算机操作系统乃至整个并发程序设计领域最难处理的问题之一。

    2020-01-03 14:02:48
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载