Junior — Middle
111
¿Puede surgir una condición de interbloqueo al usar solo un mutex?
Respuesta de la IA
sobes.tech AI
Взаимная блокировка (deadlock) возникает, когда два или более потоков ждут друг друга, удерживая ресурсы, которые нужны другим. При использовании только одного мьютекса классическая взаимная блокировка невозможна, так как есть только один ресурс, и потоки просто будут ждать освобождения этого мьютекса.
Однако может возникнуть ситуация взаимной блокировки самого потока (self-deadlock), если поток пытается повторно захватить мьютекс, который он уже держит, а мьютекс не является рекурсивным. В этом случае поток заблокируется сам на себе.
Итого:
- Взаимная блокировка между разными потоками при одном мьютексе невозможна.
- Самоблокировка возможна, если мьютекс не рекурсивный и поток пытается захватить его повторно.