Sobes.tech
Back to questions
Junior — Middle
64

Был ли у вас опыт написания кода, использующего многопоточные механизмы?

Answer from AI

sobes.tech 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++;
    }
}

Это позволяет эффективно использовать многопоточность и избегать проблем с состоянием гонки.