Я полагаю, что в этом контексте идея «обновления» и «понижения» основана на идее, что блокировка считывателя является, в некотором смысле, «более слабой» блокировкой, чем блокировка записывающего устройства.Когда блокировка записи получена, никакие другие потоки не могут получить блокировку в любой форме, тогда как с блокировкой считывателя любой другой поток может получить блокировку чтения, если он хочет.
Здесь «понижение» блокировки означаетчто если вы удерживаете блокировку записи, вы можете переключиться на удержание только блокировки чтения, получив блокировку чтения и затем сняв блокировку записи.Это означает, что у вас может быть поток, который начинает делать что-то критически важное (что-то, что мешает другим потокам читать), выполняет свою работу, а затем переключается на блокировку с более низким приоритетом (блокировку чтения), даже не будучи без блокировки,Это позволяет вам удерживать блокировку непрерывно, не получая вытеснения.
Однако другой способ не работает - удерживая блокировку чтения, вы не можете «обновить» до удержания более важной записизаблокировать, пытаясь получить блокировку записи.Если вы попытаетесь это сделать, поток просто заблокируется, пока не прервется.
Надеюсь, это поможет!