Sobes.tech
Junior — Middle

Ako rozlíšiť prácu s vláknami Thread od používania úloh Task v kontexte viacvláknového spracovania?

sobes.tech AI

Odpoveď od AI

V jazyku C# slúžia Thread a Task na organizáciu paralelnej práce, avšak líšia sa úrovňou abstrakcie a použitím:

  • Thread — nízkoúrový objekt, ktorý predstavuje samostatný vlákno operačného systému. Riadenie vlákien vyžaduje manuálnu kontrolu: vytvorenie, spustenie, synchronizáciu.

  • Task — vyššia úroveň abstrakcie, ktorá predstavuje asynchrónnu operáciu, ktorá môže byť spustená v thread pooli. Task zjednodušuje prácu s asynchronitou a paralelizmom a integruje sa s async/await.

Príklad:

// Použitie Thread
Thread thread = new Thread(() => Console.WriteLine("Vlákno Thread"));
thread.Start();

// Použitie Task
Task task = Task.Run(() => Console.WriteLine("Úloha Task"));
task.Wait();

Zhrnutie: Thread je priama správa vlákien OS, Task je pohodlný spôsob práce s asynchrónnymi a paralelnými operáciami pomocou thread poolu.