Съдържание:
Определение - Какво означава заключение за заключване?
Актът за заключване, в C #, е оператор, който съдържа ключовата дума „заключване“ и се използва в многопоточни приложения, за да се гарантира, че текущата нишка изпълнява блок код до завършване без прекъсване от други нишки. Операторът за заключване получава заключване за взаимно изключване за даден обект, така че една нишка изпълнява кодовия блок наведнъж и излиза от кодовия блок след освобождаването на ключалката.
Декларацията за заключване е изключителна заключваща конструкция, използвана за осигуряване на синхронизиран достъп до споделени данни в многопоточни приложения. Той помага да се защити целостта на изменяем ресурс, който се споделя от множество нишки, без да създава смущения между тези нишки. Операторът за заключване може да се използва от единичен обект, за да се предотврати едновременния достъп до общите му данни от множество клиенти.
Декларацията за заключване е основният примитив за синхронизация, наличен в библиотеката .NET Framework Class Той автоматично генерира постоянен и безопасен за изключения код, който може да се справи с нуждите на синхронизацията в многопоточни програми. Той също така осигурява лесен метод за контрол на синхронизацията чрез генериране на ефективен код, което предотвратява грешки, които могат да бъдат причинени от ръчно написан код.
Техопедия обяснява изявление за заключване
Заключението за заключване трябва да бъде снабдено с аргумент от референтен тип, а не от тип стойност. Като цяло се препоръчва да заключите частен член или частен статичен член, за да защитите данните, които се споделят между всички инстанции на обекта. Тъй като заключването на публичен тип или екземпляри, които са извън контрола на кода, може да доведе до ситуации в безизходица, при които множество нишки изчакват освобождаването на един обект, използван за заключение за заключване, те трябва да бъдат избягвани.
Пример за използването на заключението за заключване може да бъде многопоточно приложение, в което обект на акаунт с метод за изтегляне на баланс използва оператора за заключване, за да предотврати няколко нишки да изпълняват един и същ метод едновременно, което може да изтласка баланса до отрицателно число,
Тялото на заключението за заключване трябва да е малко, за да се намали времето, необходимо за други нишки, които чакат на блокировката, намалявайки шансовете за блокиране и свеждайки до минимум възможността да възникне изключение.
Ограниченията при използване на заключения за заключване включват, че те могат да се използват само с данни, които са от значение за текущото приложение. Заключенията също не могат да поддържат изчакване.