Sobes.tech
Junior

Šta je višestruko izvršavanje?

sobes.tech АИ

Одговор од АИ

Višestruko izvršavanje omogućava istovremeno izvršavanje više delova programa (niti), čime aplikacija postaje brža i efikasnija, posebno kod zadataka sa intenzivnim ulazom/izlazom ili dugotrajnim računskim operacijama.

Glavni koncepti:

  • Proces: Program koji se pokreće sa sopstvenim adresnim prostorom i resursima.
  • Nit: Jedinica izvršenja unutar procesa, ima sopstveni stek, CPU registre, ali deli resurse procesa (memoriju, handle-ove fajlova).
  • Planer niti: Operativni sistem upravlja izvršavanjem niti, prebacujući se između njih (promena konteksta).

Prednosti:

  • Povećana odzivnost korisničkog interfejsa.
  • Efikasnije korišćenje resursa višejedrnih procesora.
  • Pojednostavljenje asinhronog programiranja (kroz modele poput TPL).

Nedostaci:

  • Složenost u sinhronizaciji pristupa zajedničkim resursima (trke, mrtve tačke).
  • Povećani troškovi kreiranja i upravljanja nitima.
  • Teškoće u otklanjanju grešaka.

U C#-u, višestruko izvršavanje se implementira pomoću klasa iz prostora imena System.Threading i System.Threading.Tasks, posebno Thread, ThreadPool, Task, kao i ključnih reči async i await.

Primer kreiranja jednostavne niti:

using System.Threading;

// Kreiranje nove niti
Thread t = new Thread(DoWork);
// Pokretanje niti
t.Start();

void DoWork()
{
    // Kod koji se izvršava u posebnoj niti
    Console.WriteLine("Rad u novoj niti.");
}