Biblioteca Java - Blame information for rev 3
Subversion Repositories:
Rev | Author | Line No. | Line |
---|---|---|---|
3 | mihai | 1 | /* |
2 | * NumaratorT.java | ||
3 | */ | ||
4 | package lab.scd.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 | } |