Sobes.tech
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++;
    }
}