Sunteți pe pagina 1din 4

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare, Informatică și Microelectronică

RAPORT
Lucrare de laborator nr. 2
Disciplina: Programarea Concurenta si Distribuita

A elaborat: st.gr.CR-191FR Balan Ion

A verificat: Lector.univ, dr. Rotaru Lilia

Chișinău 2022
1. Tema lucrării: Gruparea firelor de execuție. Modificarea priorității lor.
2. Scopul lucrării:
 Studierea modificării priorității thread-urlilor în Java;
 Însuşirea metodelor de creare a unui grup de thread-uri;

3. Etapele de realizare:

1. Utilizarea clasei ThreadGroup pentru crearea grupelor de thread-uri;


2. Setarea priorităţilor threadurilor utilizînd funcția setPriority(….);
3. Utilizare funcției list();
4. Prezentarea lucrării.

Laborator nr.2 V1
Sarcina:

Listingul programului:
public class Main {
public static void main(String[] args) {
ThreadGroup sis =Thread.currentThread().getThreadGroup();
Thread Th1=new Thread("Th1");
Th1.setPriority(7);
Thread Th2=new Thread("Th2");
Th2.setPriority(7);
Th1.start();
Th2.start();
sis.list();
ThreadGroup G2=new ThreadGroup("G2");
Thread Th12=new Thread(G2,"Th1");
Th12.setPriority(4);
Th12.start();
Thread Th22=new Thread(G2,"Th2");
Th12.setPriority(5);
Th22.start();
Thread Th32=new Thread(G2,"Th3");
Th12.setPriority(5);
Th32.start();
G2.list();
ThreadGroup G1=new ThreadGroup("G1");
Thread ThA =new Thread(G1,"ThA");
ThA.setPriority(3);
ThA.start();
G1.list();
ThreadGroup G3=new ThreadGroup(G1,"G3");
Thread Tha=new Thread(G3,"Tha");
Tha.setPriority(3);
Tha.start();
Thread Thb=new Thread(G3,"Thb");
Thb.setPriority(3);
Thb.start();
Thread Thc=new Thread(G3,"Thc");
Thc.setPriority(3);
Thc.start();
Thread Thd=new Thread(G3,"Thd");
Thd.setPriority(3);
Thd.start();
G3.list();
}
}
Rezultate obtinute:
java.lang.ThreadGroup[name=main,maxpri=10]
Thread[main,5,main]
Thread[Monitor Ctrl-Break,5,main]
Thread[Th1,7,main]
Thread[Th2,7,main]
java.lang.ThreadGroup[name=G2,maxpri=10]
Thread[Th1,5,G2]
Thread[Th2,5,G2]
Thread[Th3,5,G2]
java.lang.ThreadGroup[name=G1,maxpri=10]
Thread[ThA,3,G1]
java.lang.ThreadGroup[name=G3,maxpri=10]
Thread[Tha,3,G3]
Thread[Thb,3,G3]
Thread[Thc,3,G3]
Thread[Thd,3,G3]
Process finished with exit code 0

Întrebări de verificare:

1. Ce permite gruparea firelor de execuție?


Gruparea firelor de execuţie pune la dispoziţie un mecanism pentru
manipularea acestora ca un întreg. De exemplu, putem să lansăm sau să suspendăm
toate firele dintr-un grup cu un singur apel la metodă. Gruparea firelor de execuţie se
realizează prin intermediul clasei ThreadGroup.
2. Ce metodă ne permite să determinăm grupul firului curent de
execuție?
Pentru a afla cărui grup aparţine un anumit fir de execuţie putem folosi
metoda getThreadGroup a clasei Thread.

3. Ce constructor permite crearea și plasarea firului de execuție într-


un anumit grup?
Crearea unui fir de execuţie şi plasarea lui într-un grup (altul decât cel
implicit) se realizează prin următorii constructori ai clasei Thread:
public Thread(ThreadGroup group, Runnable target)
public Thread(ThreadGroup group, String name)
public Thread(ThreadGroup group, Runnable target,
String name)

4. Ce prioritate are firul de execuție în mod implicit?


În mod implicit, un fir de execuţie are prioritatea NORM_PRIORITY, de
asemenea definită în clasa Thread .

5. Ce metode ne permit determinarea și setarea priorității unui fir de


execuție?
Prioritatea unui fir de execuţie poate fi determinată prin metoda getPriority().
Metoda getPriority() returnează prioritatea firului de execuție, care este un număr
întreg și reprezintă prioritatea curentă a firului de execuţie. Pentru a stabili
prioritatea, se foloseşte metoda setPriority() și primeşte ca parametru un număr
întreg, care reprezintă prioritatea dorită.

6. Ce metodă ne permite să setăm prioritatea unui grup de fire de


execuție?
Pentru a modifica prioritatea grupului de fire de execuție se folosește metoda
setMaxPriority().

S-ar putea să vă placă și