Является ли класс монитора в C# блоках путем вращения (пользовательский режим) или остановки потока (режим ядра)?
Я не смог найти ответ на этот вопрос в документация .
Я четко понимаю, как монитор взаимодействует с объектами. Он использует массив блоков syn c, созданный CLR, и просто манипулирует полем блока syn c объекта, чтобы указать на указанный c syn c блок. Тогда блок syn c будет содержать идентификатор потока, который принял блокировку, счетчик рекурсии (количество раз, которое поток просматривал). И Monitor.Enter
будет блокировать другие потоки, пока счетчик рекурсии не будет равен 0.
Но я не понимаю, как произойдет блокирование. Будут ли заблокированные (ожидающие) потоки переходить в режим ядра и останавливаться там, или они просто вращаются вокруг траты ЦП?