Sunteți pe pagina 1din 4

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare,informatică și microelectronică
Catedra Calculatoare, specialitatea: Calculatoare

RAPORT
La ASO
Lucrarea de laborator nr.1
Varianta 3

A efectuat: Roibu Dumitru gr C-161

A verificat: Rotaru Lilia, lector superior

Chişinău - 2019
Tema: Implimentarea metodelor de sincronizare a proceselor.

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

Sarcina:
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 fiecare consumator este îndestulat cu Z obiecte.
Dimensiunea depozitului este D.

3 3 2 12 11 Consoane

Codul:
package com.utm;

public class Main {


public static void main(String[] args) {
Depozit depozit = new Depozit();
Producator p1 = new Producator(depozit, "Producator.1");
Producator p2 = new Producator(depozit, "Producator.2");
Producator p3 = new Producator(depozit, "Producator.3");
Consumator c1 = new Consumator(depozit, "Consumator_1");
Consumator c2 = new Consumator(depozit, "Consumator_2");

p1.start(); p2.start(); p3.start();


c1.start(); c2.start();
while(true){
if(!c1.isAlive() || !c2.isAlive() ){
p1.stop(); p2.stop(); p3.stop();
break;
}
}
}
}

package com.utm;

public class Consumator extends Thread {


private Depozit depozit;
private String nume;

Consumator(Depozit depozit, String nume){


this.depozit = depozit;
this.nume = nume;
}
public synchronized void run(){
int nr = 12,temp;

for(int i=0; i < nr; i++){


temp = depozit.get(nume);
if(i == nr-1){
System.out.println("\t"+nume+" a consumat "+nr+" elemente"); }
try{
sleep((int)(Math.random()*1000));
}catch(InterruptedException e){}
}
}
}

package com.company;
public class Producator extends Thread {
private Depozit depozit;
private String nume;
private char[] tab = new char[]{'B','C','D','F','H','T','R','S','W','M','N'};

Producator(Depozit depozit, String nume){


this.depozit = depozit;
this.nume = nume;
}

public synchronized void run(){


int index1, index2;

while(true){
index1 = (int)(Math.random()*10);
depozit.put(tab[index1], nume);
try{
sleep((int)(Math.random()*1000));
}catch(InterruptedException e){}
}
}
}

package com.company;

public class Depozit {

char[] dep = new char[15];


int c = 0;
boolean liber = false;
boolean gol = true;
String indicator = "Consumator_2";
int ind = 0;

public synchronized int get(String nume) {


while (!liber) {
try {
wait();
} catch (InterruptedException e) {
}
}
if(indicator != nume ){
indicator = nume;
if (c == 0) {
liber = false; gol = true;
System.out.println(">>> Depozitul este gol <<<");
}
if (c < 12) {
gol = true; liber = true;
System.out.println("\t" + nume + " a consumat " + dep[c]);
c--;
}
}
else indicator = nume;

notifyAll();
return dep[c + 1];
}

public synchronized void put(char n1, String nume){


while(!gol) {
try {
wait();
} catch (InterruptedException e) { }
}

if(c == 10){
afisare(n1, nume);
gol = false; liber = true;
System.out.println("!!! Depozitul este plin !!!");
}
else
if(c < 10){
afisare(n1, nume);
gol = true;
}

notifyAll();

private void afisare(char n1, String nume) {


c++;
dep[c] = n1;
System.out.println(""+nume+" a produs "+n1);
}

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

  • Lab 1 ASO
    Lab 1 ASO
    Document6 pagini
    Lab 1 ASO
    Cristian
    100% (1)
  • Lab 2 POO AI-191
    Lab 2 POO AI-191
    Document8 pagini
    Lab 2 POO AI-191
    Carolin
    Încă nu există evaluări
  • Hgjyujvvgvhgvn
    Hgjyujvvgvhgvn
    Document5 pagini
    Hgjyujvvgvhgvn
    CS:GO cFG
    100% (2)
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Gjgguyghjjgjh
    Gjgguyghjjgjh
    Document4 pagini
    Gjgguyghjjgjh
    CS:GO cFG
    Încă nu există evaluări
  • LAB3PSR
    LAB3PSR
    Document11 pagini
    LAB3PSR
    Cristian
    Încă nu există evaluări
  • PSR Lab4
    PSR Lab4
    Document11 pagini
    PSR Lab4
    Iulian Decuseara
    Î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
  • 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
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Lab 1 PPE
    Lab 1 PPE
    Document4 pagini
    Lab 1 PPE
    King 79
    Încă nu există evaluări
  • MMC2 Modulul2
    MMC2 Modulul2
    Document16 pagini
    MMC2 Modulul2
    ViorelRotari
    Încă nu există evaluări
  • Laboratorul 1
    Laboratorul 1
    Document4 pagini
    Laboratorul 1
    ion
    Încă nu există evaluări
  • Lab 5 BTD Axenti
    Lab 5 BTD Axenti
    Document6 pagini
    Lab 5 BTD Axenti
    Alina Axenti
    100% (1)
  • SOMIPP Lab 5
    SOMIPP Lab 5
    Document5 pagini
    SOMIPP Lab 5
    Augusta Bucataru
    Încă nu există evaluări
  • Laborator NR.2
    Laborator NR.2
    Document9 pagini
    Laborator NR.2
    Daniil
    Încă nu există evaluări
  • Lab 2 Somipp
    Lab 2 Somipp
    Document5 pagini
    Lab 2 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Asdn Lab 1
    Asdn Lab 1
    Document6 pagini
    Asdn Lab 1
    DmitriiGreen
    Încă nu există evaluări
  • Lab MMC2
    Lab MMC2
    Document5 pagini
    Lab MMC2
    Maxim
    Încă nu există evaluări
  • Lab APA 4
    Lab APA 4
    Document12 pagini
    Lab APA 4
    AlionaCrigan
    Î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
  • LAB3PDP
    LAB3PDP
    Document4 pagini
    LAB3PDP
    Cristian
    Încă nu există evaluări
  • Lab 1 Somipp
    Lab 1 Somipp
    Document7 pagini
    Lab 1 Somipp
    TîmburŞtefan
    Încă nu există evaluări
  • MMC Lab2
    MMC Lab2
    Document6 pagini
    MMC Lab2
    Mihail Boran
    Î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
  • Somipp SOMIPP5
    Somipp SOMIPP5
    Document6 pagini
    Somipp SOMIPP5
    Damean Alexandra
    Încă nu există evaluări
  • Lab. 3
    Lab. 3
    Document5 pagini
    Lab. 3
    Cristina Florea
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    dtatn
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Rosca Doinita
    Încă nu există evaluări
  • SOMIPPRaspunsuri
    SOMIPPRaspunsuri
    Document82 pagini
    SOMIPPRaspunsuri
    Urmanschi Mihail
    Î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
  • Lab2 PAM
    Lab2 PAM
    Document12 pagini
    Lab2 PAM
    Ion Popescu
    Încă nu există evaluări
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Document7 pagini
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Atestare
    Atestare
    Document3 pagini
    Atestare
    Cristian Conea
    Încă nu există evaluări
  • Examen PPe
    Examen PPe
    Document11 pagini
    Examen PPe
    crismaruion
    100% (2)
  • Lab5 RC
    Lab5 RC
    Document3 pagini
    Lab5 RC
    Жан Ганган
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab4 SAV
    Lab4 SAV
    Document3 pagini
    Lab4 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • SOMIPP Lab5
    SOMIPP Lab5
    Document4 pagini
    SOMIPP Lab5
    X3 KTO
    Încă nu există evaluări
  • Iepuras Daniel Lab 1 TS
    Iepuras Daniel Lab 1 TS
    Document4 pagini
    Iepuras Daniel Lab 1 TS
    DanuIepuras
    Încă nu există evaluări
  • Lucrarea de Laborator NR 4 POO
    Lucrarea de Laborator NR 4 POO
    Document10 pagini
    Lucrarea de Laborator NR 4 POO
    Alexandru Burdeniuc
    Î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
  • Lab 3 BTD Axenti
    Lab 3 BTD Axenti
    Document6 pagini
    Lab 3 BTD Axenti
    Alina Axenti
    Încă nu există evaluări
  • Hjjgkyjhgjbn
    Hjjgkyjhgjbn
    Document19 pagini
    Hjjgkyjhgjbn
    CS:GO cFG
    Încă nu există evaluări
  • Programarea in Windows Lucrare de Laborator Nr. 2
    Programarea in Windows Lucrare de Laborator Nr. 2
    Document3 pagini
    Programarea in Windows Lucrare de Laborator Nr. 2
    Liviu Doloscan
    Încă nu există evaluări
  • ASDN2
    ASDN2
    Document6 pagini
    ASDN2
    Viktor Dobrovolschi
    Î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
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • Lab3 SAV
    Lab3 SAV
    Document4 pagini
    Lab3 SAV
    Zeul Hriscei
    Î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
  • AC Lab 4
    AC Lab 4
    Document4 pagini
    AC Lab 4
    DanuIepuras
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Lab3 Poo
    Lab3 Poo
    Document7 pagini
    Lab3 Poo
    Adrian Bodorin
    Încă nu există evaluări
  • Lab 3 Ppe
    Lab 3 Ppe
    Document8 pagini
    Lab 3 Ppe
    Anastasia Gherman
    Încă nu există evaluări
  • Lab 3 BTD
    Lab 3 BTD
    Document6 pagini
    Lab 3 BTD
    Trifan Petru
    100% (1)
  • Cerinte Interviu Tehnic
    Cerinte Interviu Tehnic
    Document34 pagini
    Cerinte Interviu Tehnic
    Emilian Lp
    100% (1)
  • Kis Alexandru Lab 6
    Kis Alexandru Lab 6
    Document7 pagini
    Kis Alexandru Lab 6
    Sabine Crihan
    Încă nu există evaluări
  • Tema 7. Metoda Trierii - Aranjamente-Combinari
    Tema 7. Metoda Trierii - Aranjamente-Combinari
    Document15 pagini
    Tema 7. Metoda Trierii - Aranjamente-Combinari
    NikoletaCujba
    Încă nu există evaluări
  • Laboratorul1 ASR
    Laboratorul1 ASR
    Document7 pagini
    Laboratorul1 ASR
    Жан Ганган
    100% (1)
  • Sisteme Multiprocesor
    Sisteme Multiprocesor
    Document13 pagini
    Sisteme Multiprocesor
    Жан Ганган
    Încă nu există evaluări
  • Curs 1 Introducere
    Curs 1 Introducere
    Document61 pagini
    Curs 1 Introducere
    Жан Ганган
    Încă nu există evaluări
  • Lab1 La Retele de Calculatoare
    Lab1 La Retele de Calculatoare
    Document7 pagini
    Lab1 La Retele de Calculatoare
    Жан Ганган
    100% (1)
  • Inter Bloc Are
    Inter Bloc Are
    Document20 pagini
    Inter Bloc Are
    Жан Ганган
    Încă nu există evaluări
  • Laborator 3
    Laborator 3
    Document5 pagini
    Laborator 3
    Жан Ганган
    Încă nu există evaluări
  • Elaborarea SO
    Elaborarea SO
    Document5 pagini
    Elaborarea SO
    Жан Ганган
    Încă nu există evaluări
  • Lab5 RC
    Lab5 RC
    Document3 pagini
    Lab5 RC
    Жан Ганган
    Încă nu există evaluări
  • Bînzari Marin
    Bînzari Marin
    Document2 pagini
    Bînzari Marin
    Жан Ганган
    Încă nu există evaluări
  • PHP Prezentare
    PHP Prezentare
    Document8 pagini
    PHP Prezentare
    Жан Ганган
    Încă nu există evaluări
  • Lab 1 GC CI
    Lab 1 GC CI
    Document7 pagini
    Lab 1 GC CI
    CazacliuIon
    Încă nu există evaluări
  • Lab 7 PC
    Lab 7 PC
    Document5 pagini
    Lab 7 PC
    Жан Ганган
    Încă nu există evaluări
  • Asdn2 Lab5
    Asdn2 Lab5
    Document4 pagini
    Asdn2 Lab5
    Жан Ганган
    Încă nu există evaluări
  • Mmclab 4
    Mmclab 4
    Document2 pagini
    Mmclab 4
    Жан Ганган
    Încă nu există evaluări
  • Sort Are
    Sort Are
    Document8 pagini
    Sort Are
    Жан Ганган
    Încă nu există evaluări
  • Raportla Baze de Date
    Raportla Baze de Date
    Document7 pagini
    Raportla Baze de Date
    Жан Ганган
    Încă nu există evaluări
  • Arbori P 1
    Arbori P 1
    Document87 pagini
    Arbori P 1
    Жан Ганган
    Încă nu există evaluări