Sobes.tech
Junior — Middle

რა მექანიზმებს იცნობთ და შეგიძლიათ გამოიყენოთ თქვენს პროექტებში?

sobes.tech AI

პასუხი AI-სგან

C# ში სხვადასხვა მექანიზმები გამოიყენება ნაკადების სინქრონიზაციისთვის:

  • lock — მარტივი გზა კრიტიკული სექციის ბლოკირებისთვის.
  • Mutex — პროცესებს შორის ბლოკირება, სასარგებლოა, როდესაც საჭიროა სხვადასხვა პროცესებს შორის წვდომის სინქრონიზაცია.
  • Semaphore და SemaphoreSlim — საშუალებას აძლევს შეზღუდოს ერთდროულად ამუშავებადი ნაკადების რაოდენობა.
  • Monitor — უფრო მოქნილი მექანიზმი, რომელზეა დაფუძნებული lock.
  • ManualResetEvent და AutoResetEvent — სიგნალიზაციისთვის შორის ნაკადებს.
  • System.Collections.Concurrent სახელფასო სივრციდან ერთობლივი კოლექციები — უზრუნველყოფს ნაკადების უსაფრთხო წვდომას კოლექციებზე.

მაგალითი lock-ის გამოყენების:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // კრიტიკული სექცია
        counter++;
    }
}