class Counter extends Thread {
private int currentValue;
public Counter(String threadName) {
super(threadName); // (1) Initialize thread.
currentValue = 0;
System.out.println(this);
start(); // (2) Start this thread.
}
public int getValue() { return currentValue; }
public void run() { // (3) Override from superclass.
try {
while (currentValue < 5) {
System.out.println(getName() + ": " + (currentValue++));
Thread.sleep(250); // (4) Current thread sleeps.
}
} catch (InterruptedException e) {
System.out.println(getName() + " interrupted.");
}
System.out.println("Exit from thread: " + getName());
}
}
public class Client {
public static void main(String[] args) {
System.out.println("Method main() runs in thread " +
Thread.currentThread().getName()); // (5) Current thread
Counter counterA = new Counter("Counter A"); // (6) Create a thread.
Counter counterB = new Counter("Counter B"); // (7) Create a thread.
System.out.println("Exit from main() method.");
}
}
Possible output from the program:
Method main() runs in thread main Thread[Counter A,5,main] Thread[Counter B,5,main] Exit from main() method. Counter A: 0 Counter B: 0 Counter A: 1 Counter B: 1 Counter A: 2 Counter B: 2 Counter A: 3 Counter B: 3 Counter A: 4 Counter B: 4 Exit from thread: Counter A Exit from thread: Counter B
No comments:
Post a Comment