Documente Academic
Documente Profesional
Documente Cultură
Raport
Disciplina: Programarea în Rețea
Chișinău 2020
Obiectivele lucrării: înțelegerea modelelor de execuție concurentă și cunoașterea tehnicilor
esențiale de sincronizare ale activităților bazate pe operațiile atomare ale semaforului; obiectivul
specific constând în crearea unei aplicații Java ce ar utiliza sigur diverse structuri într-un context
de execuție concurentă
Realizarea firelor de execuţie în Java/C#. Proprietăţile firelor. Stările unui fir de execuţie.
Lansarea, suspendarea şi oprirea unui fir de execuţie. Grupuri de Thread-uri. Elemente pentru
realizarea comunicării şi sincronizării.
Varianta 1:
Synchronization
Sincronizarea este capacitatea de a controla accesul mai multor fire la orice resursă
partajată. Sincronizarea este o opțiune mai bună în cazul în care dorim să permitem accesului
unui singur fir la resursa partajată. Sincronizarea firelor este definită ca un mecanism care
asigură că două sau mai multe fire simultane nu execută simultan un anumit segment de program
cunoscut sub numele de secțiune critică.
Sincronizarea este folosită în principal
Codul sursă:
using System;
using System.Threading;
namespace Lab2
{
class Program
{
private static Thread t1, t2, t3, t4, t5, t6, t7;
}
static void Thread1()
{
Console.WriteLine("Thread 1");
}
static void Thread2()
{
t1.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 2");
}
static void Thread3()
{
t1.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 3");
}
static void Thread4()
{
t1.Join();
t2.Join();
t3.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 4");
}
static void Thread5()
{
t4.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 5");
}
static void Thread6()
{
t4.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 6");
}
static void Thread7()
{
t4.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 7");
}
}
}