Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



25.02.2020

Koszty w górę

Zmiany w licencjach VMware
24.02.2020

VPN na nowo

WireGuard w Linuksie
24.02.2020

Wydajność pod kontrolą

Citrix Analytics for Performance
24.02.2020

Zaawansowany backup

Veeam Availability Suite v10
20.02.2020

Serwery Enterprise

OVHCloud stawia na Ryzeny
20.02.2020

Monitory dla biznesu

Newline IP
20.02.2020

Przemysłowe SSD

Dyski Transcend M.2 NVMe
23.01.2020

Google Project Zero

Inicjatywa Google Project Zero
23.01.2020

Ochrona tylko w chmurze

Kaspersky Security Cloud Free

Optymalizacja kodu w Javie – model wielowątkowości

Data publikacji: 21-09-2015 Autor: Jerzy Krawiec

Wielozadaniowość, z której korzystają nowoczesne systemy operacyjne, jest szczególną cechą języków programowania. Specyficzną formą wielozadaniowości jest wielowątkowość. Badamy wpływ różnych aspektów wielowątkowości na wydajność programu na platformie Javy.

Java, jako jeden z nielicznych języków programowania, posiada wbudowaną obsługę programowania wielowątkowego. Wielowątkowość to specyficzna postać wielozadaniowości, w której program zawiera kilka ścieżek kodu wykonywanych współbieżnie. Pod tym względem występują dwie formy wielowątkowości – oparte na procesach oraz wątkach.

Wielozadaniowość oparta na procesach umożliwia współbieżne wykonywanie wielu programów, w którym proces jest najmniejszą jednostką kodu, która może być obsługiwana przez algorytm. Wielozadaniowość bazująca na wątkach, jako najmniejszej jednostce kodu, umożliwia jednoczesne wykonywanie wielu zadań przez jeden program. Wielowątkowość oparta na wątkach jest „tańsza” niż wielowątkowość oparta na procesach. Wykonywanie zadań opartych na procesach wymaga bowiem własnej przestrzeni adresowej, kosztownej komunikacji międzyprocesowej i przełączania kontekstu z jednego do drugiego procesu.

Mimo że programy Javy używają środowisk z wielozadaniowością procesową, nie jest ona przez Javę sterowana. Java dotyczy wyłącznie wielozadaniowości wątkowej.

> Wielowątkowość

W przypadku wielowątkowości czas bezczynności procesora jest skracany do minimum, co ma ogromne znaczenie w interaktywnych środowiskach sieciowych Javy, gdyż szybkość transmisji czy odczytywania danych z lokalnego systemu plików jest dużo mniejsza niż szybkość ich przetwarzania przez procesor. Ponadto szybkość wprowadzania danych przez użytkownika jest dużo mniejsza niż ich przetwarzanie, co oznacza, że procesor przez większość czasu jest bezczynny. W takich sytuacjach wielowątkowość umożliwia optymalizację zarządzania czasem procesora. Obsługa wątków w Javie należy do systemu wykonawczego Javy (Java Virtual Machine).

Wątki mogą istnieć w wielu stanach:

 

  • wykonywanie kodu;
  • oczekiwanie na wykonywanie do czasu przydzielenia czasu procesora;
  • zawieszenie kodu (tymczasowe zaprzestanie jego wykonywania);
  • wznowienie, czyli rozpoczęcie działania kodu od miejsca jego zawieszenia;
  • zablokowanie z powodu oczekiwania na zasoby;
  • przerwanie, czyli natychmiastowe zakończenie wykonywania.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"