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



31.12.2020

Cykl webinarów

weinnovators.club
30.12.2020

Integracja z Teams

Veeam Backup
30.12.2020

Namierzanie zagrożeń

Flowmon Networks i Fortinet
30.12.2020

Wsparcie dla przedsiębiorstw

VMware Cloud on AWS
29.12.2020

Nowe NAS-y Thunderbolt 3

QNAP QuTS TVS-h1288X i TVS-h1688X
29.12.2020

Modele kompaktowe

VPL-PHZ60 i VPL-PHZ50
28.12.2020

Dedykowane przemysłowi

Seria TJ
28.12.2020

Nowa generacja

Router QHora-301W

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"