Wielowątkowość - czy warto

0
  1. Ile musi umieć juniorek javy z wielowątkowości? Wystarczy by miał obcykany producer-consumer?
  2. A na hadoopka czy w ogóle przyda się niecobardziej zaawansowana znajomość wielowątkowości niż parallelStream?
  3. Jak polecacie się jej uczyć poza tutorialem z Oracle? Taka książka będzie OK na początek? title
0

ta książka to tylko potwierdzenie by junior jednak nie brał się za wielowątkowość w java

0
nohtyp napisał(a):

ta książka to tylko potwierdzenie by junior jednak nie brał się za wielowątkowość w java

co masz na myśli?

10

Z niżej-poziomowych zagadnień fajnie żebyś wiedział cokolwiek na temat

  • tego czym są wątki i czym się różnią od procesów, jak to rzutuje na ich wykorzystanie (nie tylko w Javie)
  • podstawowych pojęć i struktur, na które możesz się natknąć przy pracy z wątkami: od muteksów i semaforów, przez zmienne i operacje atomowe, sekcje krytyczne, deadlocki, głodzenie, wyścigi, zmienne warunkowe, pule procesów / pule wątków, kwestie dostępu do pamięci z wielu wątków, sposoby synchronizacji wątków, pinning, massive parallelism itp. itd.
  • coś o rodzajach zależności (WAR, WAW, RAW), których da się pozbyć i jak się ich pozbywać
  • jak poznać że coś da się łatwo lub trudno zrównoleglić, algorytmy np. typu embarassingly parallel
  • coś o pamięciach UMA, NUMA, ccNUMA itd.
  • jakie są różnice przy pracy z wielowątkowością, wieloprocesowością i środowiskiem rozproszonym, jakaś podstawowa wiedza nt. wymiany komunikatów,

Z wyżej-poziomowych

  • ogarnij sobie jak używać np. pul procesów/wątków do zrównoleglania zadań itp.
  • klasyczne problemy jak choćby ten producent-konsument, pięciu filozofów, bizantyjscy generałowie, konsensus, czytelnicy i pisarze, różne rodzaje porządków zdarzeń itp.
  • jakieś protokoły np. MPI (chyba najbardziej bare metal do komunikacji między procesami), jakieś tam RPC, RMI itp.
  • algorytmy np. pierścieniowy, tyrana, rozpraszania/zbierania danych między procesami, Chandy-Lamporta, synchronizacji itp. itd.
  • coś o skalowalności, skalowalność silna, słaba, prawa Amdahla i Gustaffsona, jak oszacować skalowalność gdy masz narzuty zrównoleglenia, komunikacji etc.

Znając życie i tak przyda Ci się 10% tego, a i tak przez większość czasu będziesz mieć do czynienia z wyżej poziomowymi abstrakcjami które przynajmniej częściowo te rzeczy ukrywają, no ale zawsze lepiej takie rzeczy wiedzieć, niż nie wiedzieć ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1