Sunteți pe pagina 1din 5

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

Universitatea Tehnică a Moldovei

RAPORT
Lucrare de laborator nr.1
la ASO

A efectuat:
st. gr. CR-182 O.Bonari

A verificat:
dr., conf. univ. L.Rotaru

Chişinău 2021
Lucrare de laborator nr.1

1. Tema lucrării:
Implementarea metodelor de sincronizare a proceselor.

2. Scopul lucrării:
Însuşirea metodelor de sincronizare a thread-urilor

1.1. Etapele de realizare:


2. Utilizarea clasei Threadpentru crearea unei clase noi;
3. Utilizarea interfeţei Runnable pentru crearea şi lansarea de thread-uri;
4. Implementarea clasei producător;
5. Implementarea clasei consummator;
6. Sincronizarea thread-urilor prin diferite metode:
7. a) utilizând variabile logice;
b) utilizând monitoare (synchronized).

Sarcina lucrării:
X producători generează aleatoriu F obiecte care sunt consumate de Y consumatori. De
afişat informaţia despre producerea şi consumarea obiectelor, mesajele despre cazurile când
“depozitul e gol sau plin”. Toate operaţiile se efectuează până când producătorii nu vor produce Z
obiecte și consumatorii nu vor consuma aceste obiecte.
Dimensiunea depozitului este D. Valorile pentru X, Y, Z, D sunt indicate în Tabelul

3 4 19 5 Numere impare
Varianta 2

Codul (textul) programului in limbajul Java:


package labone;

import java.util.ArrayList;
import java.util.Currency;

public class LabOne


{
static Deposit d = new Deposit();
static Producer p0 = new Producer();
static Producer p1 = new Producer();
static Producer p2 = new Producer();
static Consumer c0 = new Consumer();
static Consumer c1 = new Consumer();
static Consumer c2 = new Consumer();
static Consumer c3 = new Consumer();

static class Deposit {


private int maxSize = 5;
private int totalCount = 19;
int consumedCount = 0;

private ArrayList<Integer> nums = new ArrayList<Integer>();

public synchronized Integer get()


{
while (nums.isEmpty())
{
try {
if (consumedCount >= totalCount)
{
notifyAll();

1
return null;
}
wait();
} catch (InterruptedException e) {}
}
int idx = nums.size() - 1;
int val = nums.get(idx);
nums.remove(idx);
consumedCount++;
System.out.println("Consumed: " + String.valueOf(consumedCount));
return val;
}

public synchronized boolean put(int i)


{
if (consumedCount >= totalCount)
{
notifyAll();
return false;
}
while (nums.size() >= maxSize) {
try {
wait();
} catch (InterruptedException e) {}
}
System.out.println("Produced: " + String.valueOf(consumedCount + nums.size() + 1));
nums.add(i);
notifyAll();
return true;
}
}

static class Producer extends Thread {


public void run() {
while (true) {
tryToPutValue();
tryToPutValue();
try {
sleep((int) (Math.random() * 100));
} catch (InterruptedException e) {}
}
}

private void tryToPutValue()


{
int i = (int) (Math.random() * 100) / 2 + 1;
if (d.put(i))
{
String s = "Producer #" + Thread.currentThread().getName();
System.out.println(s + " put " + i);
i += 2;
}
else
{
currentThread().stop();
}
}
}

static class Consumer extends Thread {


private ArrayList<Integer> nums = new ArrayList<Integer>();

public void run()


{
Integer val;
while ((val = d.get()) != null)
{
String s = "Consumer #" + currentThread().getName();
System.out.println(s + " get " + val);
nums.add(val);
2
}
currentThread().stop();
}
}

public static void main(String[] args) {


p0.setName("0");
p1.setName("1");
p2.setName("2");
c0.setName("0");
c1.setName("1");
c2.setName("2");
c3.setName("3");
p0.start();
p1.start();
p2.start();
c0.start();
c1.start();
c2.start();
c3.start();
}
}
Rezultatul rularii

3
4

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

  • PSR Lab1-2minzatfeliciu
    PSR Lab1-2minzatfeliciu
    Document14 pagini
    PSR Lab1-2minzatfeliciu
    Alpha Regulus
    Încă nu există evaluări
  • Pam 4
    Pam 4
    Document4 pagini
    Pam 4
    violina
    Încă nu există evaluări
  • Pam Exam
    Pam Exam
    Document2 pagini
    Pam Exam
    Culea Constantin
    Încă nu există evaluări
  • SOMIPPRaspunsuri
    SOMIPPRaspunsuri
    Document82 pagini
    SOMIPPRaspunsuri
    Urmanschi Mihail
    Încă nu există evaluări
  • CR-191 MIPI Axenti Alina Lab4
    CR-191 MIPI Axenti Alina Lab4
    Document6 pagini
    CR-191 MIPI Axenti Alina Lab4
    Alina Axenti
    Încă nu există evaluări
  • Raport Lab 2 ASDN
    Raport Lab 2 ASDN
    Document4 pagini
    Raport Lab 2 ASDN
    Jessica Alvarez
    Încă nu există evaluări
  • Lab2 PAM
    Lab2 PAM
    Document12 pagini
    Lab2 PAM
    Ion Popescu
    Încă nu există evaluări
  • Lucrarea de Laborator NR 5 POO
    Lucrarea de Laborator NR 5 POO
    Document4 pagini
    Lucrarea de Laborator NR 5 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • LAB3PSR
    LAB3PSR
    Document11 pagini
    LAB3PSR
    Cristian
    Încă nu există evaluări
  • JKKJJKBJL/NKNJKLNLN
    JKKJJKBJL/NKNJKLNLN
    Document5 pagini
    JKKJJKBJL/NKNJKLNLN
    CS:GO cFG
    Încă nu există evaluări
  • Lab4 ASDN
    Lab4 ASDN
    Document3 pagini
    Lab4 ASDN
    Dinu Dogaru
    Încă nu există evaluări
  • Ll1 Mmc1 Mereuta Ana Ti-192
    Ll1 Mmc1 Mereuta Ana Ti-192
    Document11 pagini
    Ll1 Mmc1 Mereuta Ana Ti-192
    Anya Mr
    Încă nu există evaluări
  • Laborator 1 Teoria Sistemelor
    Laborator 1 Teoria Sistemelor
    Document11 pagini
    Laborator 1 Teoria Sistemelor
    Sergiu Şveţ
    Încă nu există evaluări
  • Laborator 1 ASO
    Laborator 1 ASO
    Document4 pagini
    Laborator 1 ASO
    Жан Ганган
    Încă nu există evaluări
  • PAm Examen-1
    PAm Examen-1
    Document12 pagini
    PAm Examen-1
    Eric Semeniuc
    Încă nu există evaluări
  • Lab 6 Somipp
    Lab 6 Somipp
    Document5 pagini
    Lab 6 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Lab 3 Somipp
    Lab 3 Somipp
    Document14 pagini
    Lab 3 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • SOMIPP Lab6
    SOMIPP Lab6
    Document4 pagini
    SOMIPP Lab6
    Dan
    Încă nu există evaluări
  • Asdn Lab 1
    Asdn Lab 1
    Document6 pagini
    Asdn Lab 1
    DmitriiGreen
    Încă nu există evaluări
  • Metode Si Modele de Calcul
    Metode Si Modele de Calcul
    Document11 pagini
    Metode Si Modele de Calcul
    I LOVE ME
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document20 pagini
    Lab 1
    Fil Gorea
    Încă nu există evaluări
  • MMC Lab3 Rap
    MMC Lab3 Rap
    Document4 pagini
    MMC Lab3 Rap
    I LOVE ME
    Încă nu există evaluări
  • PSM Laborator Nr1
    PSM Laborator Nr1
    Document2 pagini
    PSM Laborator Nr1
    Ion Caimacan
    Încă nu există evaluări
  • Lab 1 ASO
    Lab 1 ASO
    Document6 pagini
    Lab 1 ASO
    Cristian
    100% (1)
  • Gjgguyghjjgjh
    Gjgguyghjjgjh
    Document4 pagini
    Gjgguyghjjgjh
    CS:GO cFG
    Încă nu există evaluări
  • Dutca Alexandru CR-182 Lab3 PCD
    Dutca Alexandru CR-182 Lab3 PCD
    Document5 pagini
    Dutca Alexandru CR-182 Lab3 PCD
    Dutca Alexandru
    Încă nu există evaluări
  • Metode Și Modele de Calcul 2
    Metode Și Modele de Calcul 2
    Document6 pagini
    Metode Și Modele de Calcul 2
    I LOVE ME
    Încă nu există evaluări
  • PS MAI 211 Lab 3 Tutunaru
    PS MAI 211 Lab 3 Tutunaru
    Document8 pagini
    PS MAI 211 Lab 3 Tutunaru
    Fil Gorea
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab MMC2
    Lab MMC2
    Document5 pagini
    Lab MMC2
    Maxim
    Încă nu există evaluări
  • LAB3PDP
    LAB3PDP
    Document4 pagini
    LAB3PDP
    Cristian
    Încă nu există evaluări
  • TAP Lab4
    TAP Lab4
    Document10 pagini
    TAP Lab4
    Cristian Batir
    Încă nu există evaluări
  • MMC2 Modulul2
    MMC2 Modulul2
    Document16 pagini
    MMC2 Modulul2
    ViorelRotari
    Încă nu există evaluări
  • Raport: La Disciplina Metode Și Modele de Calcul 1
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Document9 pagini
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Anya Mr
    Încă nu există evaluări
  • PCD Lab 1 Nepiiovda Dmitrii
    PCD Lab 1 Nepiiovda Dmitrii
    Document10 pagini
    PCD Lab 1 Nepiiovda Dmitrii
    Catalina Bucur
    Încă nu există evaluări
  • Laborator-4 MMC1 Balan Ion
    Laborator-4 MMC1 Balan Ion
    Document6 pagini
    Laborator-4 MMC1 Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Lab 2 POO AI-191
    Lab 2 POO AI-191
    Document8 pagini
    Lab 2 POO AI-191
    Carolin
    Încă nu există evaluări
  • Lab 7 Somipp
    Lab 7 Somipp
    Document5 pagini
    Lab 7 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Atestare
    Atestare
    Document3 pagini
    Atestare
    Cristian Conea
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Клара Кожухари
    Încă nu există evaluări
  • ASDN2
    ASDN2
    Document6 pagini
    ASDN2
    Viktor Dobrovolschi
    Încă nu există evaluări
  • Lab4 MMC Taucci Afanasi AI-191
    Lab4 MMC Taucci Afanasi AI-191
    Document3 pagini
    Lab4 MMC Taucci Afanasi AI-191
    Carolin
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • SOMIPP Lab5
    SOMIPP Lab5
    Document4 pagini
    SOMIPP Lab5
    X3 KTO
    Încă nu există evaluări
  • PCAD
    PCAD
    Document4 pagini
    PCAD
    Fiodor Ciumac
    Încă nu există evaluări
  • Hjjgkyjhgjbn
    Hjjgkyjhgjbn
    Document19 pagini
    Hjjgkyjhgjbn
    CS:GO cFG
    Încă nu există evaluări
  • Lab 2 BTD
    Lab 2 BTD
    Document14 pagini
    Lab 2 BTD
    megadanyx
    Încă nu există evaluări
  • Lab NR 4 MMC2 Duca Dumitru TI 194
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Document11 pagini
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Santa Claus
    Încă nu există evaluări
  • PPE Lab7
    PPE Lab7
    Document14 pagini
    PPE Lab7
    danielploaia
    Încă nu există evaluări
  • Lab 1 PPE
    Lab 1 PPE
    Document4 pagini
    Lab 1 PPE
    King 79
    Încă nu există evaluări
  • Lab Nr. 4 POO
    Lab Nr. 4 POO
    Document3 pagini
    Lab Nr. 4 POO
    Егор Казаков
    Încă nu există evaluări
  • Examenul Final BTD - 2021
    Examenul Final BTD - 2021
    Document7 pagini
    Examenul Final BTD - 2021
    Клара Кожухари
    Încă nu există evaluări
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • SOMIPP
     SOMIPP
    Document6 pagini
    SOMIPP
    Damean Alexandra
    Încă nu există evaluări
  • Lucrul 4 SDA
    Lucrul 4 SDA
    Document3 pagini
    Lucrul 4 SDA
    Ilie Turcan
    Încă nu există evaluări
  • Lab 3 BTD Axenti
    Lab 3 BTD Axenti
    Document6 pagini
    Lab 3 BTD Axenti
    Alina Axenti
    Încă nu există evaluări
  • ZinveliuIoana Cumulate Lab8 An1 Sem2
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Document12 pagini
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Ioana Zinveliu
    Încă nu există evaluări
  • PCD Lab2 Grosu Maxim RM-201
    PCD Lab2 Grosu Maxim RM-201
    Document5 pagini
    PCD Lab2 Grosu Maxim RM-201
    maxlab
    Încă nu există evaluări
  • POO Clase
    POO Clase
    Document5 pagini
    POO Clase
    Kng Ask
    Încă nu există evaluări
  • Constructor I
    Constructor I
    Document22 pagini
    Constructor I
    CS:GO cFG
    Încă nu există evaluări
  • Jbhiușohjhșișșholn
    Jbhiușohjhșișșholn
    Document5 pagini
    Jbhiușohjhșișșholn
    CS:GO cFG
    Încă nu există evaluări
  • Pac 2
    Pac 2
    Document3 pagini
    Pac 2
    CS:GO cFG
    Încă nu există evaluări
  • LJJHJKNLKNLK/N
    LJJHJKNLKNLK/N
    Document9 pagini
    LJJHJKNLKNLK/N
    CS:GO cFG
    Încă nu există evaluări
  • GHJGHVHBNNJB
    GHJGHVHBNNJB
    Document21 pagini
    GHJGHVHBNNJB
    CS:GO cFG
    Încă nu există evaluări
  • Referat Testarea
    Referat Testarea
    Document11 pagini
    Referat Testarea
    CS:GO cFG
    Încă nu există evaluări
  • Testare Aplicatie
    Testare Aplicatie
    Document3 pagini
    Testare Aplicatie
    CS:GO cFG
    Încă nu există evaluări
  • Hjjgkyjhgjbn
    Hjjgkyjhgjbn
    Document19 pagini
    Hjjgkyjhgjbn
    CS:GO cFG
    Încă nu există evaluări
  • Rsdhtftfhfjy
    Rsdhtftfhfjy
    Document4 pagini
    Rsdhtftfhfjy
    CS:GO cFG
    Încă nu există evaluări
  • Egajklrjalkgjlekrg
    Egajklrjalkgjlekrg
    Document8 pagini
    Egajklrjalkgjlekrg
    CS:GO cFG
    Încă nu există evaluări
  • Lab 2 WAFDVWEVS CR-182
    Lab 2 WAFDVWEVS CR-182
    Document5 pagini
    Lab 2 WAFDVWEVS CR-182
    CS:GO cFG
    Încă nu există evaluări
  • SGDGDRB
    SGDGDRB
    Document8 pagini
    SGDGDRB
    CS:GO cFG
    Încă nu există evaluări
  • TRHRTSBRDTHSTRH
    TRHRTSBRDTHSTRH
    Document5 pagini
    TRHRTSBRDTHSTRH
    CS:GO cFG
    Încă nu există evaluări
  • GRSHTDRKTLMHKFG
    GRSHTDRKTLMHKFG
    Document2 pagini
    GRSHTDRKTLMHKFG
    CS:GO cFG
    Încă nu există evaluări
  • RGDFHSDTHBGDBF
    RGDFHSDTHBGDBF
    Document6 pagini
    RGDFHSDTHBGDBF
    CS:GO cFG
    Încă nu există evaluări
  • Lab 2 WAFDVWEVS CR-182
    Lab 2 WAFDVWEVS CR-182
    Document5 pagini
    Lab 2 WAFDVWEVS CR-182
    CS:GO cFG
    Încă nu există evaluări
  • Lucrarea3 Ac Awcwcw
    Lucrarea3 Ac Awcwcw
    Document8 pagini
    Lucrarea3 Ac Awcwcw
    CS:GO cFG
    Încă nu există evaluări