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.
Taskzjednodušuje prácu s asynchronitou a paralelizmom a integruje sa sasync/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.