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++;
}
}
Бұл көп ағынды тиімді пайдалану мен жарыс жағдайларының алдын алуға мүмкіндік береді.