Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Data publikacji: 21-09-2015 | Autor: | Jerzy Krawiec |
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.
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:
Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.
Transmisje online zapewnia: StreamOnline