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++;
}
}