Sobes.tech
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();
        }
    }
}