死锁通常在程序的线程和数据库操作中的事务里谈到。两个线程或者事务,它们各自占据着一个数据,因为处理需要,又在彼此等待对方放手它们占有的数据,此时,循环等待,形成死锁。 大写字母A,B 表示线程或事务,小写字母表示数据 当前数据状态:A、B各自占有数据 a、b,即 A(a),B(b),此时因为 A 的逻辑需要处理数据 b,同时,B 的逻辑需要处理数据 a,而A、B各自都不放手自己占据的数据,形成死锁。
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。是操作系统层面的一个错误,是进程死锁的简称,最早在 1965 年由 Dijkstra 在研究银行家算法时提出的,它是计算机操作系统乃至整个并发程序设计领域最难处理的问题之一。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。