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



23.06.2020

PLNOG Online

PLNOG Online
23.06.2020

Nowe zagrożenie

Ramsay
23.06.2020

Chmurowe kopie

Veeam Backup dla Microsoft Azure
19.06.2020

Nowości w kontenerach

Red Hat OpenShift 4.4
19.06.2020

Analityka bezpieczeństwa

FortiAI
19.06.2020

UPS dla obliczeń edge

Schneider APC Smart-UPS
16.06.2020

Przemysłowe SD

Nowe karty Transcend
16.06.2020

Storage dla SMB

QNAP TS-451DeU
16.06.2020

Pamięć masowa

Dell EMC PowerStore

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"