Witam,
Jakie są różnice pomiędzy thread a task?
Thread jest wątkiem a to drugie zadaniem - tak wyczytałem na googlach..
Lecz nadal nie rozumiem czym to się w zasadzie różni
To tak jakbyś nie rozumiał różnicy pomiędzy komórką a kartą SIM.
Zadanie używa przynajmniej jednego tak zwanego głównego wątku, ale może używać więcej wątków.
W systemach operacyjnych czasu rzeczywistego często nie ma podziału na procesy oraz wątki, stąd po prostu "zadanie" (task). W bardziej rozbudowanych systemach jest podział na procesy i wątki.
To pytanie jest mało sensowne, bo dokładna charakterystyka zadań/wątków/procesów jest zależna od systemu operacyjnego.
Jeśli pytasz o jakiś konkretny język programowania, to warto odpowiednio otagować wątek.
w paru technologiach task jest po prostu wyzszym poziomem abstrakcji niz thread.
A mi Task kojarzy się z czymś co wrzuca się do Executora. Executor z kolei działa na puli wątków.
Dopóki autor nie sprecyzuje ocb to możemy sobie wróżyć.
To są pojęcia abstrakcyjne. O ile wszyscy rozumieją wątek, to task ma już różne znaczenia. Z grubsza (abstrakcyjnie) można uznać, że task to zestaw jakiś operacji do wykonania.
Przykładowo:
- Kernela linuxa w swojej wewnętrznej reprezentacji odnosi się do wątków jako tasków.
- Z kolei Android we frameworku ma AsyncTask, abstrakcyjny mechanizm pozwalający wykonać jakąś część pracy w innym wątku (niż wątek UI).
- System przetwarzania rozproszonego może podzielić problem obliczeniowy na wiele tasków, przy czym każdy task może wykonywać się na jednym albo kilku komputerach.