Taski, thready i różnice między nimi

1

Witam serdecznie forumowiczów,

Mam dzisiaj do Was dość istotne dla mnie pytanie, tak jak w temacie : jaka jest różnica miedzy tworzeniem aplikacji wielowątkowej opartej o "TASKI" a "THREADY"? z tego co doczytałem to "TASKI" to zadania a "THREADY" to watki z tym też, że w "TASKACH" moze pracować kilka "WĄTKÓW", i tu się gubię. Co jest lepsze i co warto bardziej stosować, zależy mi na tym aby na potrzeby mojej pracy inżynierskiej zbudować aplikacje obliczającą pewien model matematyczny podany przez promotora oparta o wątki. Promotor dąży do tego aby mieć kontrolę w tej aplikacji nad tym co dokładnie jest obliczane na danym rdzeniu (posiadam komputer oparty o i7 12-rdzeniowy, [6-rdzeni fizycznych i 6-rdzeni "wirtualnych]). Napisałem juz aplikacje testowa oparta o "TASKI" i aplikacdja przyspieszyla ok 5-cio krotnie, ale prowadzacy zabił mnie pytaniem dlaczego akurat "TASKI" i ze to sa zadania a nie wątki, kazał mi opisać dokładnie czym to się rożni od wątków i jak zdobyć kontrole nad tym zeby np. Task 1 pracował tylko na rdzeniu nr 1 Task 2 na 2-gim rdzeniu itp... Musze albo mu wytłumaczyć ze nie ma takiej mozliwości albo douczyc się że jednak jest i to zrobic i udowodnić. Prosze o porady, sugestie, krótkie wyjasnienie lub linka do artukułów i publikacji podejmujacych ten temat. Sam oczywiscie szukam in odpytuje wujka google ale po co jest forum? Mozna zawsze zapytac specjalistów, którzy mam nadzieję zasugeruja cokolwiek. Nie prosze tu o gotowa rozprawke na temat tego problemu ale o Wasze sugestie.

Pozdrawiam
OsameX

0

W informatyce pojęcie "task" może mieć różnorakie znaczenie. Najogólniej jest to "zadanie" a sposób jego wykonania (np. czy to w oddzielnym wątku czy nie) jest sprawą odrębną. Tak więc porównanie task/thread nie ma sensu jak dla mnie.

Jeśli chodzi o System.Threading.Tasks to w uproszczeniu jest to manager wątków. Klasa ułatwiająca pracę z grupą zadań, daje możliwość wykonywania ich zarówno w osobnych wątkach jak i w wątku obecnym oraz umożliwia masową kontrolę nad nimi.

Tak więc jeśli chodzi o przydzielenie konkretnego procesora konkretnemu zadaniu to po prostu trzeba go przydzielić wątkowi który wykonuje dane zadanie.

Podsumowując - pytanie o podobieństwa/różnice nie ma sensu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.