我有以下代码:
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]);
}
我可以在第一个锁和第二个锁之间出现死锁吗?假设我们在第一行之后有一个上下文切换,并且其他线程试图再次锁定某些东西?我真的不明白这一点,我想进一步了解这一点。