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++;
}
}
Это позволяет эффективно использовать многопоточность и избегать проблем с состоянием гонки.