Junior — Middle
Můžete vyjmenovat hlavní primitives synchronizace poskytované standardní knihovnou?
sobes.tech AI
Odpověď od AI
Ve standardní knihovně C# (v prostoru názvů System.Threading) jsou k dispozici následující základní primitives synchronizace:
- lock (Monitor) — zajišťuje exkluzivní přístup k prostředku tím, že blokuje část kódu.
- Mutex — mutex mezi procesy, používá se pro synchronizaci mezi procesy.
- Semaphore a SemaphoreSlim — omezují počet vláken, která mohou současně přistupovat k prostředku.
- AutoResetEvent a ManualResetEvent — události pro signalizaci mezi vlákny.
- ReaderWriterLockSlim — umožňuje více vláknům číst prostředek současně, ale blokuje zápis.
- SpinLock — lehký primitives pro krátké zámky bez přepínání kontextu.
Příklad použití lock:
private readonly object _lockObj = new object();
void CriticalSection()
{
lock(_lockObj)
{
// kód, který má být vykonán pouze jedním vláknem najednou
}
}