Deo zbornika Učimo Javu
Imenovanje niti
Često je korisno dati različitim nitima iste klase imena po kojima ih možete razlikovati. Sljedeći konstruktor klase Thread
to omogućuje:
public Thread(String name)
Uobičajeno ga je pozvati iz konstruktora podklase s kojom radimo, kao u sljedećem primjeru:
class ImenovanStampac extends Thread {
public ImenovanStampac(String name) {
super(name);
}
public void run() {
System.out.println(this.getName() + ": pocinjem!");
for (int b = -10; b < 10; b++) {
System.out.println(this.getName() + ": " + b);
}
System.out.println(this.getName() + ": gotovo!");
}
}
Metoda getName()
iz klase Thread
vratit će ime niti. Sljedeći program omogućuje razlikovanje ispisa prema threadovima koji su ih proizveli:
class ImenovaniStampaciProba {
public static void main(String[] args) {
ImenovanStampac stampac1 = new ImenovanStampac("Frank");
ImenovanStampac stampac2 = new ImenovanStampac("Mary");
ImenovanStampac stampac3 = new ImenovanStampac("Chris");
stampac1.start();
stampac2.start();
stampac3.start();
}
}
Primer
Celokupni program u jednom fajlu bi izgledao ovako:
class ImenovanStampac extends Thread {
public ImenovanStampac(String name) {
super(name);
}
public void run() {
System.out.println(this.getName() + ": pocinjem!");
for (int b = -10; b < 10; b++) {
System.out.println(this.getName() + ": " + b);
}
System.out.println(this.getName() + ": gotovo!");
}
}
class ImenovaniStampaciProba {
public static void main(String[] args) {
ImenovanStampac stampac1 = new ImenovanStampac("Frank");
ImenovanStampac stampac2 = new ImenovanStampac("Mary");
ImenovanStampac stampac3 = new ImenovanStampac("Chris");
stampac1.start();
stampac2.start();
stampac3.start();
}
}
Ovako se pokrece iz zasebnih fajlova:
% javac ImenovanStampac.java
% javac ImenovaniStampaciProba.java
% java ImenovaniStampaciProba
Frank: pocinjem!
Frank: -10
. . .
Frank: -4
Mary: pocinjem!
Chris: pocinjem!
Mary: -10
. . .
Mary: 9
Mary: gotovo!
Chris: 3
. . .
Chris: gotovo!
Frank: -3
. . .
Frank: 9
Frank: gotovo!
Izvor: Elliotte Rusty Harold, Java Lecture Notes, preveo Draško Budin, priredio Damjan Pavlica.