Sunteți pe pagina 1din 6

Ministerul Educaţiei, Tineretului şi Sportului al Republicii Moldova

Universitate Tehnică a Moldovei

Disciplina: „ Programarea Concurenta”

Lucrarea de laborator Nr.1 (partea II)

Tema: Crearea şi enumerarea thread-urilor

A realizat: ………………….. ……….

st. gr. C-…

A verificat: Rotaru Lilia


Chişinău 2012

Scopul lucrarii:
 Însuşirea modalităţilor de creare a thread-urlilor în Java;
 Însuşirea metodelor de creare a unui grup de thread-uri;
Etapele de realizare:
1) Utilizarea clasei Thread pentru crearea unei clase noi;
2) Utilizarea interfeţei Runnable pentru crearea şi lansarea de thread-uri;
3) Utilizarea clasei ThreadGroup pentru crearea grupelor de thread-uri;
4) Setarea priorităţilor thread+urilor cu setPriority(….);
5) Enumerarea thread-urilor şi a priorităţilor lor cu enumerate();
6) Utilizare list();
7) Prezentarea lucrării.

Sarcina:
Sumele produselor numerelor de pe poziţii Sumele produselor numerelor de pe poziţii
impare două câte două începând cu primul impare două câte două începând cu ultimul
element element

Listingul Programului:
package lab1_2;

import java.util.List;

import java.util.Vector;

public class Lab1_2 {

static int n=2000;

public static void main(String[] args) {

List a = new Vector();

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

a.add((int) (Math.random() * 1000));

System.out.println("Nota:");

System.out.println("Firul #1 se proceseaza de la STINDA-DREAPTA");

System.out.println("Firul #2 se proceseaza de la DREAPTA-STINDA");

// afisam array generat

System.out.println("\n Creem un tabloul aleator:\n");

for (int i = 0; i < a.size(); i++) {


2
int w = Integer.parseInt("" + a.get(i).toString());

System.out.print("" + w + " ");

System.out.println();

fir1 f1, f2;

f1 = new fir1(a, 0, n, 1);

f2 = new fir1(a, n, 0, -1);

f1.start();

f2.start();

class fir1 extends Thread {

private int from, to, step;

public fir1(List arr, int from, int to, int step) {

this.a = arr;

this.from = from;

this.to = to;

this.step = step;

List a = null;

fir1(List arr) {

this.a = arr;

@Override

public void run() {

int par = 0, p1 = 0, p2 = 0;

int sum = 0;

if (to > from) {

for (int i = from, j = 1; i < to; i += step, j++) {//this.a.size()

if ((j % 2) == 1) {
3
par++;

if (par == 1) {

sum = Integer.parseInt(this.a.get(i).toString());

if (par == 2) {

p1 = sum * Integer.parseInt(this.a.get(i).toString());

sum = 0;

if (par == 3) {

sum = Integer.parseInt(this.a.get(i).toString());

if (par == 4) {

p2 = sum * Integer.parseInt(this.a.get(i).toString());

sum = p1 + p2;

System.out.println("Firul #1" + " " + sum + " ");

par = 0;

} else {

for (int i = from, j = 1; i > to; i += step, j++) {//this.a.size()

if ((j % 2) == 0) {

par++;

if (par == 1) {

sum = Integer.parseInt(this.a.get(i).toString());

if (par == 2) {

p1 = sum * Integer.parseInt(this.a.get(i).toString());

sum = 0;
4
}

if (par == 3) {

sum = Integer.parseInt(this.a.get(i).toString());

if (par == 4) {

p2 = sum * Integer.parseInt(this.a.get(i).toString());

sum = p1 + p2;

System.out.println("Firul #2" + " " + sum + " ");

par = 0;

Rezultatele obtinute:

Concluzie: In urma efectuarii acestei lucrari de laborator am acumulat cunostinte noi in


domeniul programarii cum ar fi cum ar fi crearea thread-urilor si crearea unui grup de
thread-uri. Elaborind aceasta lucrare am demonstrat ca am insusit cu succes tema data si

5
putem sa aplicam pe viitor cunostintele acumulate. Desi la inceput parea o lucrare grea sa
dovedit a fi o lucrere simpla datorita cursului pe care l-am studiat.

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