You are on page 1of 12

Paralelnost

Općenito
Java je višedretveni jezik
Brže izvođenje
Code dizajn
Paralelno programiranje omogućuje da se
dio koda izvrši odvojeno i neovisno
Svaki odvojeni zadatak se izvršava u
posebnoj dretvi
Jedan proces može imati više dretvi
Definiranje i izvođenje zadatka
Dretva izvodi zadatak
Sučelje Runnable – metoda run
Primjer: LiftOff.java, MainThread.java,
BasicThread.java, MoreBasicThreads.java
Korištenje Executor-a
java.util.concurrent Executor-i
pojednostavljuju paralelno programiranje
upravljajući Thread objektima
Executor-u su sloj između zadatka i izvršenja
zadatka
Asinkrono izvršavanje zadataka
Primjer: CachedThreadPool.java,
FixedThreadPool.java,
SingleThreadExecutor.java
Zadatak s povratnom
vrijednošću
Sučelje Callable – metoda call
Mora se koristiExecutorService submit()
metoda
Primjer: CallableDemo.java
Pauziranje dretve
Metoda sleep()
Primjer: SleepingTask.java
Prioriteti
Prioritet dretve ne garantira redoslijed
izvođenja
Metoda setPriority()
Primjer: SimplePriorities.java
Deamon dretva
Deamon dretva se vrti u pozadini i nije
sastavni dio programa.
Završetkom programa završavaju se sve
deamon dretve
Primjer: SimpleDeamon.java
Opcije u kodiranje
Nasljeđivanje klase Thread
Primjer: SimpleThread.java,
SelfManaged.java
Spajanje dretvi
Metoda join()
Ako jedna dretva pozove join() za drugu
dretvu, onda će prva dretva biti
suspendirana dok druga dretva ne završi.
Primjer: Joining.java
Dijeljenje resursa
Problem!!!!
synchronized
mutex (klasa Lock)
Višedretveni problemi
Završavanje dretvi
Interrupts
Sinkronizacija dretvi
Deadlock

You might also like