gpt4 book ai didi

linux - 关于互斥锁和死锁

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:02 26 4
gpt4 key购买 nike

我有以下代码:

pthread_mutex lock_row[M], lock_culm[M];
FUNCTION SIGNATURE (..., int i, int j, ...) {
pthread_mutex_lock(&lock_row[i]);
pthread_mutex_lock(&lock_culm[j]);
...CRITICAL CODE...
pthread_mute_unlock(&lock_row[j]);
pthread_mute_unlock(&lock_row[i]);
}

我可以在第一个锁和第二个锁之间形成死锁吗?假设我们在第一行之后有一个上下文切换,并且其他线程试图再次锁定某些东西?我不太明白这一点,我想进一步了解这一点。

最佳答案

除了当你尝试解锁某事两次时可能出现的错字之外,这个例子永远不会死锁。两个锁定调用之间的上下文切换不会对此处涉及的机制构成威胁。将其视为获得更高水平的津贴。获得每个锁后,该进程或线程就可以执行更多操作。每个锁都是一个门,它可能会阻止进程直到没有其他锁持有者阻止更高级别的进入。两次锁定之间发生的任何事情都无关紧要,只要它不改变该允许级别即可。

关于linux - 关于互斥锁和死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16762853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com