Sobes.tech
Junior — Middle

Көп ағынды механизмдерді қолданатын код жазуда тәжірибеңіз болды ма?

sobes.tech AI

AI-дан жауап

Иә, менде C# тілінде көп ағынды код жазу тәжірибем бар. Ағындармен жұмыс істеу үшін мен System.Threading кеңістігінен кластарды қолдандым, мысалы, Thread, Task, сондай-ақ синхрондау механизмдерін (lock, Mutex, Semaphore).

Параллель операцияны іске қосу үшін Task қолдану мысалы:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        Task<int> task = Task.Run(() => {
            // Кейбір ұзақ операция
            int sum = 0;
            for (int i = 0; i < 1000000; i++)
                sum += i;
            return sum;
        });

        int result = await task;
        Console.WriteLine($"Жиынтық: {result}");
    }
}

Сонымен қатар, ортақ ресурстарды бір уақытта қол жеткізуден қорғау үшін lock қолдандым:

private static readonly object _locker = new object();

void IncrementCounter()
{
    lock(_locker)
    {
        // Критикалық бөлім
        counter++;
    }
}

Бұл көп ағынды тиімді пайдалану мен жарыс жағдайларының алдын алуға мүмкіндік береді.