死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待状态,没有任何个体可以继续前进。会出现在多线程,多进程间。
死锁必要条件:
如何在编程中尽量预防死锁呢?
线程A和B都需要过桥(都需要使用进程),而都礼让不走(那到的系统优先级相同,都认为不是自己优先级高),就这么僵持下去.(很绅士,互相谦让)
任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败。
活锁和死锁的区别在于,处于活锁的实体是在不断的改变状态,所谓的“活”, 而处于死锁的实体表现为等待;活锁有可能自行解开,死锁则不能。
是指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况。
原文:https://www.cnblogs.com/fmys/p/10982894.html