Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
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