Junior — Middle
Layihələrinizdə semaforların istifadəsi təcrübəniz varmı?
sobes.tech Süni İntellekt
AI-dan cavab
Bəli, çox iş parçacığı mühitində məhdud resurslara girişin idarə olunması üçün C# layihələrində semaforlar istifadə etmişəm. Məsələn, verilənlər bazası və ya fayl sistemləri ilə işləyən zaman, eyni zamanda işləyən iş parçacığı sayını məhdudlaşdırmaq üçün Semaphore və ya SemaphoreSlim siniflərindən istifadə edirdim.
SemaphoreSlim istifadə nümunəsi:
using System;
using System.Threading;
class Program
{
static SemaphoreSlim semaphore = new SemaphoreSlim(3); // maksimum 3 iş parçacığı
static void AccessResource(int id)
{
semaphore.Wait();
try
{
Console.WriteLine($"İş parçacığı {id} giriş aldı");
Thread.Sleep(1000); // işin simulyasiyası
}
finally
{
Console.WriteLine($"İş parçacığı {id} girişini sərbəst buraxdı");
semaphore.Release();
}
}
static void Main()
{
for (int i = 1; i <= 5; i++)
{
int localId = i;
new Thread(() => AccessResource(localId)).Start();
}
}
}