boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

初识Linux · 系统编程done


avatar
悠悠站长 2025年6月20日 3

前言:

本文作为Linux系统编程的总结,介绍了一些零散的概念,例如死锁、可重入函数、自旋锁和读写锁等。其中,死锁的概念尤为重要,而自旋锁和读写锁则相对次要,我们只需简单了解即可。

接下来,我们直接进入第一个主题:死锁。


死锁的概念为:

我们可以举一个简单的例子,A持有1元钱,B持有1元钱,A和B都想要购买价值2元的商品C。此时,A向B申请1元钱,而B向A申请1元钱,但它们都不愿意释放自己的1元钱。因此,A在等待B提供1元钱,而B在等待A提供1元钱,结果就形成了互相等待的局面。

从上面的例子中,我们可以总结出死锁形成的原因:

初识Linux · 系统编程done

互斥条件:至少有一个资源只能被某个执行流持有。

请求并保持条件:一个执行流在申请新资源时,仍旧保持对已有资源的占有。

不可剥夺条件:已经分配给一个执行流的资源不能被强行剥夺,只能由执行流自身释放。

环路等待条件:存在一个环路,每个执行流都在等待其他执行流持有的资源。



评论(已关闭)

评论已关闭