次のコードがあります。
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]);
}
最初のロックと 2 番目のロックの間でデッドロックが発生することはありますか? 最初の行の後にコンテキスト スイッチがあり、他のスレッドが何かを再びロックしようとしたとしましょう。よく分からないのでもう少し詳しく知りたいです。