Junior — Middle
შეგიძლიათ ჩამოთვალოთ სტანდარტული ბიბლიოთეკის მიერ მოწოდებული ძირითადი სინქრონიზაციის primitives?
sobes.tech AI
პასუხი AI-სგან
C#-ის სტანდარტულ ბიბლიოთეკაში (სახელმწიფო სახელმძღვანელო სისტემაში System.Threading) ხელმისაწვდომია შემდეგი ძირითადი სინქრონიზაციის primitives:
- lock (Monitor) — უზრუნველყოფს ექსკლუზიურ წვდომას რესურსზე, ბლოკავს კოდის მონაკვეთს.
- Mutex — მრავალპროცესიანი mutex, გამოიყენება პროცესებს შორის სინქრონიზაციისთვის.
- Semaphore და SemaphoreSlim — შეზღუდავენ ერთდროულად რესურსზე წვდომას მძლავრობით.
- AutoResetEvent და ManualResetEvent — მოვლენები სიგნალიზაციისთვის შორის მძლავრობით.
- ReaderWriterLockSlim — საშუალებას აძლევს რამდენიმე მძლავრობას ერთდროულად წაიკითხოს რესურსი, მაგრამ ბლოკავს დაწერას.
- SpinLock — მსუბუქი primitive მოკლე ბლოკირებისთვის, კონტექსტის გადართვის გარეშე.
lock-ის გამოყენების მაგალითი:
private readonly object _lockObj = new object();
void CriticalSection()
{
lock(_lockObj)
{
// კოდი, რომელიც უნდა შესრულდეს მხოლოდ ერთ მძლავრობით ერთდროულად
}
}