Sobes.tech
Junior — Middle

Kokius siūlų sinchronizacijos mechanizmus žinote ir galite naudoti savo projektuose?

sobes.tech AI

Atsakymas iš AI

C# kalboje naudojami įvairūs mechanizmai srautų sinchronizavimui:

  • lock — paprastas būdas užblokuoti kritinę kodo sekciją.
  • Mutex — tarpprocesinis užraktas, naudingas, kai reikia sinchronizuoti prieigą tarp skirtingų procesų.
  • Semaphore ir SemaphoreSlim — leidžia apriboti tų srautų, kurie vienu metu vykdo tam tikrą kodo dalį, skaičių.
  • Monitor — lankstesnis mechanizmas, ant kurio pagrįstas lock.
  • ManualResetEvent ir AutoResetEvent — signalizacijai tarp srautų.
  • Concurrent kolekcijos iš System.Collections.Concurrent erdvės — užtikrina saugų prieigą prie kolekcijų iš kelių srautų.

Pavyzdys, kaip naudoti lock:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Kritinė sekcija
        counter++;
    }
}