У меня 6 тем.Один из потоков входит в какую-то область и включает «блокировку», а все остальные потоки ожидают и хотят войти в ту же область.
Теперь, другие потоки получат процессорное время?Есть ли другой поток в расписании потоков?Я понимаю, что все остальные потоки находятся в состоянии ожидания - но ЦП попытается заставить поток продолжить и попытаться войти в область (даже если область не доступна)
При попытке ввести уже снятую блокировку, потоки сначала спинлок на некоторое время, и, наконец, приостанавливают и переходят в состояние ожидания.
Они по-прежнему сжигают процессорное время, пока они вращаются, но больше не после ожидания.
Это не так, как работает замок. Вы больше никому не дадите «время процессора». Если вы блокируете, вы можете ввести периоды ожидания и потенциально взаимоблокировки, когда потоки ждут друг друга.