Biblioteca Java - Blame information for rev 28

Subversion Repositories:
Rev:
Rev Author Line No. Line
28 mihai 1 /*
2  * NumaratorT.java
3  */
4 package exemple.fire.thread;
5  
6 /**
7  * Class created by @author Mihai HULEA at Feb 12, 2005.
8  *
9  * This class is part of the labs project.
10  *
11  * Clasa ilustreaza modul de lucru cu fire de executie in java.
12  *
13  * Tema:
14  *
15  * 1. Verificati functionarea programului
16  *
17  * 2. Inlocuiti apelarea meotdelor start() cu apelarea directa a metodelor run() in cadrul
18  *      programului principal (ex. in loc de n1.start() -> n1.run() ). Observati modificarile
19  *  in executie.
20  *
21  * 3. Pentru a seta prioritatea unui fir se utiliezeaza metoda setPriority(priority), unde
22  * priority reprezinta prioritatea unui thread. Analizati documentatia clasei Thread si determinati
23  * variabilele sau metodele definite in cadrul clasei care va permit sa aflati valoarea maxima si minima
24  * a prioritatilor pentru un fir de executie. Modificati programul pentru a afisa valorile maxime
25  * si minime ale prioritatilor adimisibile.
26  *
27  * 4. Modificati programul pentru a permite setarea pentru fiecare fir de executie startat a unei prioritati.
28  * Se va modifica constructorul clasei astfel incat acesta sa primeasca ca si argument prioritatea dorita. In
29  * cadrul clasei se va seta prioritatea firului de executie.
30  *
31  * 5. scoateti comentariul din fata liniei setDaemon(true) din cadrul clasei NumaratorT.
32  * Recompilati si rulati programul. Explicati modul de comportament.
33  *
34  * 5. Modificati acest program astfel incat firele de executie saafiseze in cadrul unei
35  * ferestre intr-un TextField valoarea conunterului.
36  */
37 public class NumaratorT extends Thread{
38  
39     int nr;
40     boolean active = true;
41  
42     /**
43      * Constructorul clasei.
44      * @param name reprezinta numele firulul
45      */
46     public NumaratorT(String name){
47         //metoda seteaza numele unui fir de executie
48         this.setName(name);
49         //this.setDaemon(true);
50     }
51  
52     /**
53      * In momentul startarii unui fir de exectuie este apelata si executata in cadrul
54      * firului metoda run().
55      */
56     public void run(){
57  
58         while(active){
59             nr++;
60             System.out.println("Thread "+this.getName()+" counter = "+nr);
61             try {
62                 //dupa fiecare incrementare a firului se realizeaza opauza de 500 milisecunde
63                 Thread.sleep(500);
64             } catch (InterruptedException e) {
65  
66                 e.printStackTrace();
67             }
68         }//.while
69     }
70  
71  
72     public static void main(String[] args) {
73  
74         //declara 3 variabile de tip NumaratorT
75         NumaratorT n1,n2,n3;
76  
77         //construieste obiectele n1, n2 si n3
78         n1 = new NumaratorT("Fir 1");
79         n2 = new NumaratorT("Fir 2");
80         n3 = new NumaratorT("Fir 3");
81  
82         //starteaza cele 3 fire de executie. Startarea unui fir de executie se face
83         // apelandmetoda start
84         n1.start();
85         n2.start();
86         n3.start();
87  
88     }
89 }