Sobes.tech
Junior — Middle

Loyihalaringizda semaforlarni ishlatish bo'yicha tajribangiz bormi?

sobes.tech AI

AIdan javob

Ha, men çox iş parçacıklı mühitdə 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();
        }
    }
}