Łukasz Koniecki - Java Memory Model - Trójmiasto JUG [22.09.2016]

youtube.com 7 lat temu


Java Memory Model czyli co każdy Java Developer powinien wiedzieć o procesorach, kompilatorach, wielowątkowości i synchronizacji

Niskopoziomowe podejście do zagadnienia jakim jest Java Memory Model (JMM). Będzie dużo teorii ale też dużo kodu.

JMM jest częścią Java Language Specification i jest zagadnieniem skomplikowanym. Samo wytłumaczenie czym jest JMM nie jest proste. Powstało wiele definicji opisujących JMM, funkcjonuje też wiele błędnych opisów modelu. Mimo, iż obecny model istnieje i został zaimplementowany już JDK5, czyli od 2004 roku, to jednak niewielu programistów czytało i rozumie tę specyfikację. Warto się z nią zapoznać, tym bardziej, iż oficjalnie została zaproponowana jego modyfikacja. Opowiem jaki wpływ na działanie Waszych aplikacji będzie miała ta zmiana.

Omówimy jak działa współczesny procesor, kompilator JIT oraz w jaki sposób mogą one zoptymalizować Twój kod. Dowiecie się również, dlaczego synchronizacja jest ważna i jaki ma ona wpływ na przetwarzanie instrukcji przez procesor oraz na wydajność samej aplikacji. Pokażę również na kilku przykładach jak trudno jest wnioskować na temat wyniku działania danego programu w przypadku braku poprawnej synchronizacji.

Temat przedstawi nam Łukasz Koniecki z Dynatrace