Documente Academic
Documente Profesional
Documente Cultură
Scopul lucrarii:
Însuşirea modalităţilor şi a mecanizmelor de sincronizare;
Însuşirea modalităţilor de realizare a mecanizmelor de sincronizare;
Etapele de realizare:
Sincronizarea firelor de execuţie;
1)
Realizarea metodelor de sincronizare a firelor de execuţie;
2)
Crearea interfeţii programului;
3)
Prezentarea lucrării.
4)
Sarcina: Scriţi un program pentru 12 cititori şi 18scriitori, care înscriu în bază cîte 7
obiecte.
Listingul Programului:
package sola5_nb;
import java.util.*;
this.name=String.valueOf(name);
while(writtenbooks<bookCount)
2
{
if (semaphore==0)
semaphore=1;
writtenbooks++;
writtenCount.add(String.valueOf(writtenbooks));
System.out.println(" Obiectul este scris " + writtenbooks + " de scriitorul NR. " + name);
if (writtenCount.size()==bookCount)
semaphore=0;
try
{sleep(1000);}
catch(InterruptedException e)
this.stop();
3
public Reader(int name)
this.name=String.valueOf(name);
if (Writer.semaphore==0)
while (readbooks<Writer.bookCount)
if (readCount.size()==readbooks)
if (stopAll==0)
stopAll=1;
this.stop();
else
System.out.println(" Este citit obiectul NR. " + Writer.writtenCount.elementAt(i) + " de cititorul NR. "
+ name);
if (readCount.elementAt(i).equals("0"))
4
readCount.set(i, "1");
readbooks++;
try
{ sleep(500);}
catch(InterruptedException e)
this.stop();
}
5
Vector<Reader> r=new Vector<Reader>();//cititorii
if (i<w.size()) w.elementAt(i).start();
if (i<r.size()) r.elementAt(i).start();
6
Rezultatele obtinute: