Capitolul 5 - Concurenta Flashcards
Ce este un fir de execuție?
curs4 ->2:21
Un fir de execuție reprezintă un set de instrucțiuni ce se execută individual și independent de alte seturi de instrucțiuni din aplicație
Cand apare un deadlock?
cand 2 fire de exe se asteapta unul pe celalt
Cand apare RaceCondition?
Cand 2 fire vor sa acceseze aceiasi resursa
Cand apare LiveLock?
cand 2 sau mai multe fire care ar trebui sa se opreasca una pe cealalta continua
Cand apare Starvation?
un fir ajunge sa se execute ft ft greu pentru ca sunt mereu alte fire care au o prioritate mai mare.
De ce preferam utilizarea interfetei Runnable?
Pentru a imparti responsabilitatile.
Ce fac urmatoarele 2 instructiuni (t1 si t2 sunt threaduri) :
t1. join();
t2. join();
firul main va astepta pana t1 se executa
firul main va astepta pana t2 se executa
Ce este un executor?
o clasa care se ocupa de executarea in paralel a unor clase:
- Executor
- ExecutorService (cea mai folosita)
- ScheduledExecutorService
Care e diferenta intre executor si task?
Task-ul este o instructiune sau un set de instructiuni care se poate executa.
Runnable poate defini un task.
Callable poate defini un task.
Executorul manageuieste in spate un threadpool.
Care este diferenta dintre Runnable si Callable?
Runnable nu arunca nicio exceptie si nu retunrneaza niciun rezultat
Callable este modalitatea de a defini un task care returneaza un rezultat
Ce face newChachedThreadPool?
ne creaza un pool cu numar variabil de fire in functie de nr de taskuri tinandu-le active timp de 60 sec.
Unde se preteaza cel mai bine newChachedThreadPool?
taskuri multe si scurte
Unde se preteaza cel mai bine newFixedThreadPool?
taskuri de lunga durata
Ce tip trebuie sa fie task-ul de mai jos ?
service.submit(task);
Task tb sa fie de tip Callable.
Ce tip trebuie sa fie task-ul de mai jos ?
service.execute(task);
Task tb sa fie de tip Execute