Middle
Lock курулушунда блоктоо үчүн сапты объект катары колдонсо болобу?
sobes.tech AI
AIден жооп
C# тилде lock үчүн сапты объект катары колдонуу сунушталбайт. Техникалык жактан бул мүмкүн болсо да, .NETтеги саптар өзгөрүлбөс (immutable) жана ичкилештирилген (interned) болушу мүмкүн, бул дегенде бирдей саптар литералдары эс тутумда бир эле объектке шилтеме жасай алат.
Бул программа бөлүктөрүнүн случайдуу бирдей сапты блоктоо үчүн колдонушуна алып келиши мүмкүн, бул алдын ала көрүлбөгөн жүрүм-турум жана синхрондоштуруу көйгөйлөрүнө алып келет.
Туура ыкма — блоктоо үчүн өзүнчө жеке объектти колдонуу:
private readonly object _lockObj = new object();
lock(_lockObj)
{
// сыналган бөлүм
}
Ошентип, сиз блокировка only сиздин кодуңуз тарабынан көзөмөлдөнүп жатканын жана башка бөлүктөр менен кагылышпаганын камсыздайсыз.