Как устроен lock и как поток понимает необходимость ожидания

C#асинхронностьблокировкимногопоточностьсинхронизация