Sunteți pe pagina 1din 6

Documentatie PPD Laborator 3-Alexandra Mihai

Grupa 235

Cerinta:
Problema Implementati o clasa “SortedLinkedList” – lista inlantuita sortata cu elemente de tip real,
astfel incat sa fie “thread-safe”. Operatiile furnizate de clasa sunt: - insert(a: Real) o pre:
this=[a(0),…,a(n)] a.i. pentru orice i: 0<i a(i-1) <=a(i)<=a(i+1) o post: a este adaugat in lista pe pozitia
corespunzatoare: this=[a(0), …a(i), a, a(i+1)…,a(n)] a.i. a(i) <=a<=a(i+1) - delete(a: Real) o pre : exista pos
o pozitie valida in lista a.i. lista(pos)= a o post: elementul a este sters din lista - getIterator():Iterator o
pre : lista valida o post: result = it , it in Iterator pe lista

Clase:

SortedLinkLinst clasa care reprezinta SortedLinkList:


- public synchronized void insert(float x): se cauta
pozitia de inserat in lista,se insereaza noul element cu
valoarea x,pe pozitio corespunzatoare in
lista,incrementandu-se dimensiunea listei.Daca nu sunt
elemente in lista, elemental x se insereaza pe prima
pozitie si se mareste dimensiunea listei.
- public synchronized void delete(float x): se cauta
pozitia elementului de sters din liste, se
sterge,reasignandu-se noile legaturi intre elemente si se
scade dimensiunea listei.

Iterator Clasa care reprezinta iteratorul:


-boolean hasNext() : se returneaza true daca lista mai are elemente de
iterat,false altfel
-public Node next() : se returneaza urmatorul nod.
-public float getElement() : se returneaza valoarea unui nod.
Node Clasa care reprezinta nodul :
-getteri si setteri pt next si data.
Main Clasa main:
Se pornesc 4 threaduri care lucreaza pe aceeasi lista:
Primul thread insereaza 10 elemente in lista
Al doilea thread insereaza 5 elemente in lista
Al treilea thread sterge 7 valori din lista
Al 4 lea intereaza lista in mod repetat
Pentru a asigura faptul ca nu toate threadurile apeleaza metode in acelasi timp, ca celelalte threaduri
astepta pana termina primul,si ca celelalte threaduri sa vada schimbarile facute de primul thread, am
folosit synchronized :

Exemplu:
Thread tDelete = new Thread(() -> {
synchronized (sortedLinkedList) {
for (int i = 2; i < 9; i++) {
sortedLinkedList.delete((float) i);
writer.println("Delete : " + i + " ThreadNo: " +
Thread.currentThread().getId() + " Time : " + LocalDateTime.now());
}
}
});
tDelete.start();

Pentru a verifica faputl ca un thread care a fost pornit nu s-a terminat,


Am folosit isAlive():
Exemplu:
Thread tIterate = new Thread(() -> {

while (tInsert10.isAlive() || tInsert5.isAlive() || tDelete.isAlive())…

Exemple din List.log pt prima testare:

Insert10 : 0 ThreadNo: 11 Time : 2017-11-29T16:35:22.309


Iterate. ThreadNo: 14 Time : 2017-11-29T16:35:22.310 Elements:
Insert10 : 1 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 2 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 3 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 4 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 5 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 6 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 7 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 8 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
Insert10 : 9 ThreadNo: 11 Time : 2017-11-29T16:35:22.342
0.0
Delete : 2 ThreadNo: 13 Time : 2017-11-29T16:35:22.416
Delete : 3 ThreadNo: 13 Time : 2017-11-29T16:35:22.416
Delete : 4 ThreadNo: 13 Time : 2017-11-29T16:35:22.416
Delete : 5 ThreadNo: 13 Time : 2017-11-29T16:35:22.416
Delete : 6 ThreadNo: 13 Time : 2017-11-29T16:35:22.416
Delete : 7 ThreadNo: 13 Time : 2017-11-29T16:35:22.417
Delete : 8 ThreadNo: 13 Time : 2017-11-29T16:35:22.417
Insert5 : 10 ThreadNo: 12 Time : 2017-11-29T16:35:22.417
Insert5 : 11 ThreadNo: 12 Time : 2017-11-29T16:35:22.417
Insert5 : 12 ThreadNo: 12 Time : 2017-11-29T16:35:22.417
Insert5 : 13 ThreadNo: 12 Time : 2017-11-29T16:35:22.417
Insert5 : 14 ThreadNo: 12 Time : 2017-11-29T16:35:22.417

Timpi: 176.0,164.0,142.0,141.0,170.0,1667.0

Exemple din List.log pt a doua testare:


Insert10 : 0 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 1 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 2 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 3 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 4 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 5 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 6 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 7 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 8 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 9 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 10 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Iterate. ThreadNo: 14 Time : 2018-01-10T12:03:00.911 Elements:
Insert10 : 11 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 12 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 13 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 14 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 15 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 16 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 17 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 18 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 19 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 20 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 21 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 22 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 23 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 24 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 25 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 26 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 27 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 28 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 29 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 30 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 31 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 32 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 33 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 34 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 35 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 36 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 37 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 38 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 39 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 40 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 41 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 42 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 43 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 44 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 45 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 46 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 47 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 48 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 49 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 50 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 51 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 52 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 53 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 54 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 55 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 56 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 57 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 58 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 59 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 60 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 61 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 62 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 63 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 64 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 65 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 66 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 67 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 68 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 69 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 70 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 71 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 72 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 73 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 74 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 75 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 76 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 77 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 78 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 79 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 80 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 81 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 82 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 83 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 84 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 85 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 86 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 87 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 88 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 89 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 90 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 91 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 92 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 93 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 94 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 95 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 96 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 97 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 98 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Insert10 : 99 ThreadNo: 11 Time : 2018-01-10T12:03:00.911
Delete : 2 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 3 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 4 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 5 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 6 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 7 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 8 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 9 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 10 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 11 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 12 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 13 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 14 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 15 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 16 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 17 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 18 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 19 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 20 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 21 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 22 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 23 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 24 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 25 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 26 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 27 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 28 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 29 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 30 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 31 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 32 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 33 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 34 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 35 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 36 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 37 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 38 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 39 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 40 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 41 ThreadNo: 13 Time : 2018-01-10T12:03:00.911
Delete : 42 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 43 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 44 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 45 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 46 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 47 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 48 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Delete : 49 ThreadNo: 13 Time : 2018-01-10T12:03:00.927
Insert5 : 10 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 11 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 12 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 13 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 14 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 15 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 16 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 17 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 18 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 19 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 20 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 21 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 22 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 23 ThreadNo: 12 Time : 2018-01-10T12:03:00.927
Insert5 : 24 ThreadNo: 12 Time : 2018-01-10T12:03:00.932
Insert5 : 25 ThreadNo: 12 Time : 2018-01-10T12:03:00.932
Insert5 : 26 ThreadNo: 12 Time : 2018-01-10T12:03:00.932
Insert5 : 27 ThreadNo: 12 Time : 2018-01-10T12:03:00.932
Insert5 : 28 ThreadNo: 12 Time : 2018-01-10T12:03:00.932
Insert5 : 29 ThreadNo: 12 Time : 2018-01-10T12:03:00.932
Insert5 : 30 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 31 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 32 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 33 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 34 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 35 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 36 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 37 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 38 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 39 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 40 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 41 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 42 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 43 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 44 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 45 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 46 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 47 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 48 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 49 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 50 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 51 ThreadNo: 12 Time : 2018-01-10T12:03:00.933
Insert5 : 52 ThreadNo: 12 Time : 2018-01-10T12:03:00.934
Insert5 : 53 ThreadNo: 12 Time : 2018-01-10T12:03:00.934

Insert5 : 54 ThreadNo: 12 Time : 2018-01-10T12:03:00.934


Insert5 : 55 ThreadNo: 12 Time : 2018-01-10T12:03:00.934

Insert5 : 57 ThreadNo: 12 Time : 2018-01-10T12:03:00.934

Insert5 : 58 ThreadNo: 12 Time : 2018-01-10T12:03:00.934


Insert5 : 59 ThreadNo: 12 Time : 2018-01-10T12:03:00.934

Timp1: 250.0
Timp2: 162.0
Timp3: 149.0
Timp4: 158.0
Timp5: 168.0
Timp6: 177.0
Timp7: 188.0
Timp8: 177.0
Timp9: 184.0

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