Virtual Threads u Javi 21 – Workshop
Nedavno smo održali prezentaciju i radionicu pod nazivom “Uvod u Virtual Threads u Javi” koju je vodio nas zaposlenik Domagoj Gjalić. Ovim smo workshopom upoznali naše zaposlenike s najnovijim promjenama s Concurrency modelom Jave.
Što su Virtual Threads?
Virtual Threads, uvedeni u Javi 21, predstavljaju značajan napredak u radu s Java concurrency. Za razliku od tradicionalnih Threadova koje imaju 1:1 povezanost s Threadovima operativnog sustava, Virtual Threadovi su puno manje zahtjevni i njima upravlja Java Runtime. To omogućuje pokretanje tisuća ili čak milijuna Virtual Threadova istovremeno, bez značajnog opterećenja sustava.
Prednosti Virtual Threadova:
- Efikasnost: Troše minimalne resurse u usporedbi s tradicionalnim threadovima.
- Skalabilnost: Omogućuju visok Concurrency bez stvaranja uskih grla.
- Jednostavnost: Pojednostavljuju pisanje Concurrencyja.
- Dinamičko upravljanje resursima: Automatski se prilagođavaju threadovima operacijskog sustava za optimalne performanse.
Detalji Workshopa
Workshop je obuhvatio sljedeće teme:
- Razlika između Concurrencyja i paralelizma: pbjašnjeno je kako konkurentnost omogućuje napredak više zadataka istovremeno, dok paralelizam podrazumijeva njihovo stvarno simultano izvršavanje.
- Problemi tradicionalnih threadova: prokomentirali smo o njihovoj resursnoj zahtjevnosti i ograničenjima skalabilnosti.
- Uvod u Virtual Threads: pokazali smo kako Virtual Threads rješavaju izazove svojom jednostavnijom arhitekturom.
- Praktične primjene:
- Idealne za operacije vezane uz ulaz/izlaz (I/O), poput web poslužitelja ili aplikacija koje zahtijevaju intenzivan Concurrency.
- Neprikladni za CPU-intenzivne zadatke ili sustave s realnim vremenskim ograničenjima.
- Primjena u Spring Bootu: posebno smo obratili pozornost na korištenje Virtual Threadova u Spring Bootu 3.2. Ondje omogućuju jednostavniju paralelizaciju putem novih konfiguracijskih opcija.

Zaključak
Ovaj workshop bila je prilika da naši zaposlenici steknu praktično znanje o Virtual Threads i upoznaju njihove prednosti. Kroz ovakve inicijative nastojimo razvijati stručnost unutar našeg tima te se pripremiti za izazove koje donosi budućnost razvoja softvera.