Junior — Middle
Կարող եք նշել թելերի և գործընթացների սինխրոնիզացիայի հիմնական մեխանիզմները?
sobes.tech AI
Պատասխան AI-ից
C# լեզվում թելերի և գործընթացների սինխրոնիզացիայի հիմնական մեխանիզմները ներառում են.
- lock — ապահովում է բացառիկ մուտք դեպի ռեսուրս, փակելով կոդի հատվածը մյուս թելերի համար:
- Mutex — միջգործնական փակման մեխանիզմ, որը թույլ է տալիս սինխրոնիզացնել մուտքը տարբեր գործընթացների միջև:
- Semaphore և SemaphoreSlim — սահմանափակում են միաժամանակ ռեսուրսին մուտք գործող թելերի թիվը:
- Monitor — ավելի ճկուն փակման մեխանիզմ, որը թույլ է տալիս սպասել և տեղեկացնել թելերին:
- AutoResetEvent և ManualResetEvent — թույլ են տալիս թելերին սպասել ազդանշանի մինչև շարունակել:
- Interlocked — տրամադրում է ագրեգատային օպերացիաներ փոփոխականների վրա՝ մրցակցային պայմաններից խուսափելու համար:
Օրինակ՝ lock-ի օգտագործումը:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// քննադատական հատված
counter++;
}
}