Sobes.tech
Junior — Middle

Ako sa v programovaní realizuje paralelné vykonávanie úloh?

sobes.tech AI

Odpoveď od AI

V jazyku C# sa paralelné vykonávanie úloh realizuje pomocou niekoľkých prístupov:

  • Vlákna (Threads) — manuálne vytváranie a správa vlákien pomocou triedy Thread.
  • Pool vlákien (ThreadPool) — použitie poolu vlákien na opätovné využitie vlákien bez nákladov na ich vytvorenie.
  • Úlohy (Tasks) — mechanizmus vyššej úrovne v priestore mien System.Threading.Tasks, ktorý umožňuje spúšťanie asynchrónnych operácií.
  • Asynchrónne programovanie (async/await) — zjednodušuje písanie asynchrónneho kódu, umožňuje spúšťanie úloh paralelne bez blokovania hlavného vlákna.

Príklad paralelného vykonávania pomocou Task:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        Task task1 = Task.Run(() => {
            // Paralelná práca
            Console.WriteLine("Úloha 1 sa vykonáva");
        });

        Task task2 = Task.Run(() => {
            Console.WriteLine("Úloha 2 sa vykonáva");
        });

        await Task.WhenAll(task1, task2);
        Console.WriteLine("Všetky úlohy sú dokončené");
    }
}

Týmto spôsobom sa dosahuje paralelizmus spustením viacerých úloh, ktoré môžu byť vykonávané súčasne na rôznych vláknach.